Opened 5 years ago

Last modified 5 years ago

#3114 assigned enhancement

Improve session-saving error information

Reported by: Tristan Croll Owned by: Greg Couch
Priority: normal Milestone:
Component: Sessions Version:
Keywords: Cc: Tristan Croll, Eric Pettersen
Blocked By: Blocking:
Notify when closed: Platform: all
Project: ChimeraX

Description

The following bug report has been submitted:
Platform:        Linux-3.10.0-1062.9.1.el7.x86_64-x86_64-with-centos-7.7.1908-Core
ChimeraX Version: 0.93 (2020-04-03)
Description
Not quite sure what triggered this. Haven't done all that much that's unusual, except use the right-mouse distance tool (and then close the distance model via the Models panel).

Log:
Startup Messages  
---  
warning | 'clip' is a prefix of an existing command 'clipper'  
  
UCSF ChimeraX version: 0.93 (2020-04-03)  
© 2016-2020 Regents of the University of California. All rights reserved.  
How to cite UCSF ChimeraX  

> open AlF4.pdb

Summary of feedback from opening AlF4.pdb  
---  
warnings | Ignored bad PDB record found on line 1  
REMARK Date 2020-04-17 Time 06:10:52 CEST +0200 (1587096652.27 s)  
  
Ignored bad PDB record found on line 2  
REMARK PHENIX refinement  
  
Ignored bad PDB record found on line 4  
REMARK ****************** INPUT FILES AND LABELS
******************************  
  
Ignored bad PDB record found on line 5  
REMARK Reflections:  
  
Ignored bad PDB record found on line 6  
REMARK file name :
/Users/pwr852/Desktop/E2/H8-4-2/adp_H8_4_1_20171013_000808/gopy/H8_4_1_ccp4_18P21212.mtz  
  
49 messages similar to the above omitted  
  
Chain information for AlF4.pdb #1  
---  
Chain | Description  
A | No description available  
  

> isolde start

> set selectionWidth 4

Chain information for AlF4.pdb  
---  
Chain | Description  
1.2/A | No description available  
  
Done loading forcefield  
Discarding unrecognised/unsupported data array /H8_4_1/H8_4_1/ISYM_H8_4_1 Y  

> set bgColor white

> select ~protein

6 atoms, 4 bonds, 26 models selected  

> select clear

> addh

Summary of feedback from adding hydrogens to AlF4.pdb #1.2  
---  
notes | No usable SEQRES records for AlF4.pdb (#1.2) chain A; guessing termini
instead  
Chain-initial residues that are actual N termini: /A ARG 41  
Chain-initial residues that are not actual N termini:  
Chain-final residues that are actual C termini:  
Chain-final residues that are not actual C termini: /A ARG 678  
492 hydrogen bonds  
/A ARG 678 is not terminus, removing H atom from 'C'  
4810 hydrogens added  
  

> hide HC

> select #1

9511 atoms, 9581 bonds, 26 models selected  
Loading residue template for ALF from internal database  
Traceback (most recent call last):  
File "/home/tic20/.local/share/ChimeraX/0.93/site-
packages/chimerax/isolde/isolde.py", line 2685, in _start_sim_or_toggle_pause  
self.start_sim()  
File "/home/tic20/.local/share/ChimeraX/0.93/site-
packages/chimerax/isolde/isolde.py", line 2705, in start_sim  
self.params, self.sim_params, excluded_residues = self.ignored_residues)  
File "/home/tic20/.local/share/ChimeraX/0.93/site-
packages/chimerax/isolde/openmm/openmm_interface.py", line 609, in __init__  
raise e  
File "/home/tic20/.local/share/ChimeraX/0.93/site-
packages/chimerax/isolde/openmm/openmm_interface.py", line 591, in __init__  
isolde.forcefield_mgr)  
File "/home/tic20/.local/share/ChimeraX/0.93/site-
packages/chimerax/isolde/openmm/openmm_interface.py", line 1319, in __init__  
template_dict = find_residue_templates(sim_construct.all_residues, ff,
ligand_db=ligand_db, logger=session.logger)  
File "/home/tic20/.local/share/ChimeraX/0.93/site-
packages/chimerax/isolde/openmm/openmm_interface.py", line 3065, in
find_residue_templates  
forcefield.loadFile(xf)  
File "/opt/UCSF/ChimeraX/lib/python3.7/site-
packages/simtk/openmm/app/forcefield.py", line 280, in loadFile  
template.atoms.append(ForceField._TemplateAtomData(atomName, typeName,
self._atomTypes[typeName].element, params))  
KeyError: 'Al'  
  
KeyError: 'Al'  
  
File "/opt/UCSF/ChimeraX/lib/python3.7/site-
packages/simtk/openmm/app/forcefield.py", line 280, in loadFile  
template.atoms.append(ForceField._TemplateAtomData(atomName, typeName,
self._atomTypes[typeName].element, params))  
  
See log for complete Python traceback.  
  

Failed to add
/run/media/tic20/storage/structure_dump/denmark/kaituo/new_apr_2020/new
structures-2020-04-16/AlF4/ALF.xml: NonbondedForce: No value specified for
"charge"  

> select #1

9511 atoms, 9581 bonds, 32 models selected  
Loading residue template for ALF from internal database  
Traceback (most recent call last):  
File "/home/tic20/.local/share/ChimeraX/0.93/site-
packages/chimerax/isolde/isolde.py", line 2685, in _start_sim_or_toggle_pause  
self.start_sim()  
File "/home/tic20/.local/share/ChimeraX/0.93/site-
packages/chimerax/isolde/isolde.py", line 2705, in start_sim  
self.params, self.sim_params, excluded_residues = self.ignored_residues)  
File "/home/tic20/.local/share/ChimeraX/0.93/site-
packages/chimerax/isolde/openmm/openmm_interface.py", line 609, in __init__  
raise e  
File "/home/tic20/.local/share/ChimeraX/0.93/site-
packages/chimerax/isolde/openmm/openmm_interface.py", line 591, in __init__  
isolde.forcefield_mgr)  
File "/home/tic20/.local/share/ChimeraX/0.93/site-
packages/chimerax/isolde/openmm/openmm_interface.py", line 1319, in __init__  
template_dict = find_residue_templates(sim_construct.all_residues, ff,
ligand_db=ligand_db, logger=session.logger)  
File "/home/tic20/.local/share/ChimeraX/0.93/site-
packages/chimerax/isolde/openmm/openmm_interface.py", line 3065, in
find_residue_templates  
forcefield.loadFile(xf)  
File "/opt/UCSF/ChimeraX/lib/python3.7/site-
packages/simtk/openmm/app/forcefield.py", line 280, in loadFile  
template.atoms.append(ForceField._TemplateAtomData(atomName, typeName,
self._atomTypes[typeName].element, params))  
KeyError: 'Al'  
  
KeyError: 'Al'  
  
File "/opt/UCSF/ChimeraX/lib/python3.7/site-
packages/simtk/openmm/app/forcefield.py", line 280, in loadFile  
template.atoms.append(ForceField._TemplateAtomData(atomName, typeName,
self._atomTypes[typeName].element, params))  
  
See log for complete Python traceback.  
  

> select clear

> toolshed show Shell

/opt/UCSF/ChimeraX/lib/python3.7/site-packages/IPython/core/history.py:226:
UserWarning: IPython History requires SQLite, your history will not be saved  
warn("IPython History requires SQLite, your history will not be saved")  
Done loading forcefield  

Failed to add
/run/media/tic20/storage/structure_dump/denmark/kaituo/new_apr_2020/new
structures-2020-04-16/AlF4/ALF.xml: NonbondedForce: No value specified for
"charge"  

Loading residue template for ALF from internal database  
Traceback (most recent call last):  
File "/home/tic20/.local/share/ChimeraX/0.93/site-
packages/chimerax/isolde/isolde.py", line 2685, in _start_sim_or_toggle_pause  
self.start_sim()  
File "/home/tic20/.local/share/ChimeraX/0.93/site-
packages/chimerax/isolde/isolde.py", line 2705, in start_sim  
self.params, self.sim_params, excluded_residues = self.ignored_residues)  
File "/home/tic20/.local/share/ChimeraX/0.93/site-
packages/chimerax/isolde/openmm/openmm_interface.py", line 609, in __init__  
raise e  
File "/home/tic20/.local/share/ChimeraX/0.93/site-
packages/chimerax/isolde/openmm/openmm_interface.py", line 591, in __init__  
isolde.forcefield_mgr)  
File "/home/tic20/.local/share/ChimeraX/0.93/site-
packages/chimerax/isolde/openmm/openmm_interface.py", line 1319, in __init__  
template_dict = find_residue_templates(sim_construct.all_residues, ff,
ligand_db=ligand_db, logger=session.logger)  
File "/home/tic20/.local/share/ChimeraX/0.93/site-
packages/chimerax/isolde/openmm/openmm_interface.py", line 3065, in
find_residue_templates  
forcefield.loadFile(xf)  
File "/opt/UCSF/ChimeraX/lib/python3.7/site-
packages/simtk/openmm/app/forcefield.py", line 280, in loadFile  
template.atoms.append(ForceField._TemplateAtomData(atomName, typeName,
self._atomTypes[typeName].element, params))  
KeyError: 'Al'  
  
KeyError: 'Al'  
  
File "/opt/UCSF/ChimeraX/lib/python3.7/site-
packages/simtk/openmm/app/forcefield.py", line 280, in loadFile  
template.atoms.append(ForceField._TemplateAtomData(atomName, typeName,
self._atomTypes[typeName].element, params))  
  
See log for complete Python traceback.  
  

Failed to add
/run/media/tic20/storage/structure_dump/denmark/kaituo/new_apr_2020/new
structures-2020-04-16/AlF4/ALF.xml: Found multiple definitions for atom type:
ALF_Al  

> select #1

9511 atoms, 9581 bonds, 32 models selected  
Loading residue template for ALF from internal database  
Traceback (most recent call last):  
File "/home/tic20/.local/share/ChimeraX/0.93/site-
packages/chimerax/isolde/isolde.py", line 2685, in _start_sim_or_toggle_pause  
self.start_sim()  
File "/home/tic20/.local/share/ChimeraX/0.93/site-
packages/chimerax/isolde/isolde.py", line 2705, in start_sim  
self.params, self.sim_params, excluded_residues = self.ignored_residues)  
File "/home/tic20/.local/share/ChimeraX/0.93/site-
packages/chimerax/isolde/openmm/openmm_interface.py", line 609, in __init__  
raise e  
File "/home/tic20/.local/share/ChimeraX/0.93/site-
packages/chimerax/isolde/openmm/openmm_interface.py", line 591, in __init__  
isolde.forcefield_mgr)  
File "/home/tic20/.local/share/ChimeraX/0.93/site-
packages/chimerax/isolde/openmm/openmm_interface.py", line 1319, in __init__  
template_dict = find_residue_templates(sim_construct.all_residues, ff,
ligand_db=ligand_db, logger=session.logger)  
File "/home/tic20/.local/share/ChimeraX/0.93/site-
packages/chimerax/isolde/openmm/openmm_interface.py", line 3065, in
find_residue_templates  
forcefield.loadFile(xf)  
File "/opt/UCSF/ChimeraX/lib/python3.7/site-
packages/simtk/openmm/app/forcefield.py", line 280, in loadFile  
template.atoms.append(ForceField._TemplateAtomData(atomName, typeName,
self._atomTypes[typeName].element, params))  
KeyError: 'Al'  
  
KeyError: 'Al'  
  
File "/opt/UCSF/ChimeraX/lib/python3.7/site-
packages/simtk/openmm/app/forcefield.py", line 280, in loadFile  
template.atoms.append(ForceField._TemplateAtomData(atomName, typeName,
self._atomTypes[typeName].element, params))  
  
See log for complete Python traceback.  
  

> select clear

Failed to add
/run/media/tic20/storage/structure_dump/denmark/kaituo/new_apr_2020/new
structures-2020-04-16/AlF4/ALF.xml: Found multiple definitions for atom type:
ALF_Al  

Done loading forcefield  

Failed to add
/run/media/tic20/storage/structure_dump/denmark/kaituo/new_apr_2020/new
structures-2020-04-16/AlF4/ALF.xml: NonbondedForce: No value specified for
"charge"  

> select #1

9511 atoms, 9581 bonds, 32 models selected  
Traceback (most recent call last):  
File "/home/tic20/.local/share/ChimeraX/0.93/site-
packages/chimerax/isolde/isolde.py", line 2685, in _start_sim_or_toggle_pause  
self.start_sim()  
File "/home/tic20/.local/share/ChimeraX/0.93/site-
packages/chimerax/isolde/isolde.py", line 2705, in start_sim  
self.params, self.sim_params, excluded_residues = self.ignored_residues)  
File "/home/tic20/.local/share/ChimeraX/0.93/site-
packages/chimerax/isolde/openmm/openmm_interface.py", line 600, in __init__  
raise e  
File "/home/tic20/.local/share/ChimeraX/0.93/site-
packages/chimerax/isolde/openmm/openmm_interface.py", line 591, in __init__  
isolde.forcefield_mgr)  
File "/home/tic20/.local/share/ChimeraX/0.93/site-
packages/chimerax/isolde/openmm/openmm_interface.py", line 1327, in __init__  
sim_params, residue_templates)  
File "/home/tic20/.local/share/ChimeraX/0.93/site-
packages/chimerax/isolde/openmm/openmm_interface.py", line 1424, in
_create_openmm_system  
sys = forcefield.createSystem(top, **system_params)  
File "/opt/UCSF/ChimeraX/lib/python3.7/site-
packages/simtk/openmm/app/forcefield.py", line 1294, in createSystem  
force.createForce(sys, data, nonbondedMethod, nonbondedCutoff, args)  
File "/opt/UCSF/ChimeraX/lib/python3.7/site-
packages/simtk/openmm/app/forcefield.py", line 2330, in createForce  
values = self.params.getAtomParameters(atom, data)  
File "/opt/UCSF/ChimeraX/lib/python3.7/site-
packages/simtk/openmm/app/forcefield.py", line 848, in getAtomParameters  
raise ValueError('%s: No parameters defined for atom type %s' %
(self.forceName, t))  
ValueError: NonbondedForce: No parameters defined for atom type ALF_Al  
  
ValueError: NonbondedForce: No parameters defined for atom type ALF_Al  
  
File "/opt/UCSF/ChimeraX/lib/python3.7/site-
packages/simtk/openmm/app/forcefield.py", line 848, in getAtomParameters  
raise ValueError('%s: No parameters defined for atom type %s' %
(self.forceName, t))  
  
See log for complete Python traceback.  
  
Done loading forcefield  

> select clear

Updating bulk solvent parameters...  
Done loading forcefield  
Traceback (most recent call last):  
File "/home/tic20/.local/share/ChimeraX/0.93/site-
packages/chimerax/isolde/isolde.py", line 1205, in _add_ff_files_gui  
self.add_ffxml_files(ff, files)  
File "/home/tic20/.local/share/ChimeraX/0.93/site-
packages/chimerax/isolde/isolde.py", line 1229, in add_ffxml_files  
forcefield.loadFile(f, prefix="USER_")  
File "/opt/UCSF/ChimeraX/lib/python3.7/site-
packages/simtk/openmm/app/forcefield.py", line 372, in loadFile  
parsers[child.tag](child, self)  
File "/opt/UCSF/ChimeraX/lib/python3.7/site-
packages/simtk/openmm/app/forcefield.py", line 2028, in parseElement  
generator.registerImproperTorsion(torsion.attrib)  
File "/opt/UCSF/ChimeraX/lib/python3.7/site-
packages/simtk/openmm/app/forcefield.py", line 2006, in
registerImproperTorsion  
torsion = self.ff._parseTorsion(parameters)  
File "/opt/UCSF/ChimeraX/lib/python3.7/site-
packages/simtk/openmm/app/forcefield.py", line 545, in _parseTorsion  
torsion.periodicity.append(int(attrib['periodicity%d'%index]))  
KeyError: 'periodicity1'  
  
KeyError: 'periodicity1'  
  
File "/opt/UCSF/ChimeraX/lib/python3.7/site-
packages/simtk/openmm/app/forcefield.py", line 545, in _parseTorsion  
torsion.periodicity.append(int(attrib['periodicity%d'%index]))  
  
See log for complete Python traceback.  
  
Done loading forcefield  

> select clear

Updating bulk solvent parameters...  
Done loading forcefield  
Done loading forcefield  
Updating bulk solvent parameters...  
Done loading forcefield  
Updating bulk solvent parameters...  

> ui mousemode rightMode distance

> distance /B:1@F3 /B:1@F1

Distance between /B ALF 1 F3 and F1: 2.523Å  
Done loading forcefield  
Loading residue template for ALF from internal database  
Traceback (most recent call last):  
File "/home/tic20/.local/share/ChimeraX/0.93/site-
packages/chimerax/isolde/isolde.py", line 2685, in _start_sim_or_toggle_pause  
self.start_sim()  
File "/home/tic20/.local/share/ChimeraX/0.93/site-
packages/chimerax/isolde/isolde.py", line 2705, in start_sim  
self.params, self.sim_params, excluded_residues = self.ignored_residues)  
File "/home/tic20/.local/share/ChimeraX/0.93/site-
packages/chimerax/isolde/openmm/openmm_interface.py", line 609, in __init__  
raise e  
File "/home/tic20/.local/share/ChimeraX/0.93/site-
packages/chimerax/isolde/openmm/openmm_interface.py", line 591, in __init__  
isolde.forcefield_mgr)  
File "/home/tic20/.local/share/ChimeraX/0.93/site-
packages/chimerax/isolde/openmm/openmm_interface.py", line 1319, in __init__  
template_dict = find_residue_templates(sim_construct.all_residues, ff,
ligand_db=ligand_db, logger=session.logger)  
File "/home/tic20/.local/share/ChimeraX/0.93/site-
packages/chimerax/isolde/openmm/openmm_interface.py", line 3065, in
find_residue_templates  
forcefield.loadFile(xf)  
File "/opt/UCSF/ChimeraX/lib/python3.7/site-
packages/simtk/openmm/app/forcefield.py", line 280, in loadFile  
template.atoms.append(ForceField._TemplateAtomData(atomName, typeName,
self._atomTypes[typeName].element, params))  
KeyError: 'Al'  
  
KeyError: 'Al'  
  
File "/opt/UCSF/ChimeraX/lib/python3.7/site-
packages/simtk/openmm/app/forcefield.py", line 280, in loadFile  
template.atoms.append(ForceField._TemplateAtomData(atomName, typeName,
self._atomTypes[typeName].element, params))  
  
See log for complete Python traceback.  
  
Updating bulk solvent parameters...  
Done loading forcefield  
Updating bulk solvent parameters...  

> color bfactor

9511 atoms, 640 residues, atom bfactor range 55 to 425  

> select up

5 atoms, 4 bonds, 1 model selected  

> select up

22 atoms, 21 bonds, 1 model selected  

> select up

5 atoms, 4 bonds, 1 model selected  

> select up

6 atoms, 4 bonds, 1 model selected  

> select clear

> color bychain

> color byhetero

> select clear

> close #2

> save working.cxs

Traceback (most recent call last):  
File "/opt/UCSF/ChimeraX/lib/python3.7/site-
packages/chimerax/core/session.py", line 811, in save  
session.save(output, version=version, include_maps=include_maps)  
File "/opt/UCSF/ChimeraX/lib/python3.7/site-
packages/chimerax/core/session.py", line 569, in save  
fserialize(stream, data)  
File "/opt/UCSF/ChimeraX/lib/python3.7/site-
packages/chimerax/core/serialize.py", line 63, in msgpack_serialize  
stream.write(packer.pack(obj))  
File "msgpack/_packer.pyx", line 284, in msgpack._cmsgpack.Packer.pack  
File "msgpack/_packer.pyx", line 290, in msgpack._cmsgpack.Packer.pack  
File "msgpack/_packer.pyx", line 287, in msgpack._cmsgpack.Packer.pack  
File "msgpack/_packer.pyx", line 234, in msgpack._cmsgpack.Packer._pack  
File "msgpack/_packer.pyx", line 277, in msgpack._cmsgpack.Packer._pack  
File "stringsource", line 67, in
cfunc.to_py.__Pyx_CFunc_object____object___to_py.wrap  
File "_serialize.pyx", line 251, in core._serialize._encode_ext  
RuntimeError: Can't convert object of type: <class
'PyQt5.QtCore.Qt.CheckState'>  
  
RuntimeError: Can't convert object of type:  
  
File "_serialize.pyx", line 251, in core._serialize._encode_ext  
  
See log for complete Python traceback.  
  
Traceback (most recent call last):  
File "/opt/UCSF/ChimeraX/lib/python3.7/site-
packages/chimerax/cmd_line/tool.py", line 258, in execute  
cmd.run(cmd_text)  
File "/opt/UCSF/ChimeraX/lib/python3.7/site-
packages/chimerax/core/commands/cli.py", line 2848, in run  
result = ci.function(session, **kw_args)  
File "/opt/UCSF/ChimeraX/lib/python3.7/site-
packages/chimerax/core/commands/save.py", line 61, in save  
fmt.export(session, filename, fmt.nicknames[0], **kw)  
File "/opt/UCSF/ChimeraX/lib/python3.7/site-packages/chimerax/core/io.py",
line 229, in export  
result = self.export_func(session, path, **kw)  
File "/opt/UCSF/ChimeraX/lib/python3.7/site-
packages/chimerax/core/session.py", line 811, in save  
session.save(output, version=version, include_maps=include_maps)  
File "/opt/UCSF/ChimeraX/lib/python3.7/site-
packages/chimerax/core/session.py", line 569, in save  
fserialize(stream, data)  
File "/opt/UCSF/ChimeraX/lib/python3.7/site-
packages/chimerax/core/serialize.py", line 63, in msgpack_serialize  
stream.write(packer.pack(obj))  
File "msgpack/_packer.pyx", line 284, in msgpack._cmsgpack.Packer.pack  
File "msgpack/_packer.pyx", line 290, in msgpack._cmsgpack.Packer.pack  
File "msgpack/_packer.pyx", line 287, in msgpack._cmsgpack.Packer.pack  
File "msgpack/_packer.pyx", line 234, in msgpack._cmsgpack.Packer._pack  
File "msgpack/_packer.pyx", line 277, in msgpack._cmsgpack.Packer._pack  
File "stringsource", line 67, in
cfunc.to_py.__Pyx_CFunc_object____object___to_py.wrap  
File "_serialize.pyx", line 251, in core._serialize._encode_ext  
RuntimeError: Can't convert object of type: <class
'PyQt5.QtCore.Qt.CheckState'>  
  
RuntimeError: Can't convert object of type:  
  
File "_serialize.pyx", line 251, in core._serialize._encode_ext  
  
See log for complete Python traceback.  
  




OpenGL version: 3.3.0 NVIDIA 440.33.01
OpenGL renderer: TITAN Xp/PCIe/SSE2
OpenGL vendor: NVIDIA Corporation
Manufacturer: Dell Inc.
Model: Precision T5600
OS: CentOS Linux 7 Core
Architecture: 64bit ELF
CPU: 32 Intel(R) Xeon(R) CPU E5-2687W 0 @ 3.10GHz
Cache Size: 20480 KB
Graphics:
	03:00.0 VGA compatible controller [0300]: NVIDIA Corporation GP102 [TITAN Xp] [10de:1b02] (rev a1)
	Subsystem: NVIDIA Corporation Device [10de:11df]
	Kernel driver in use: nvidia

Change History (6)

in reply to:  1 ; comment:1 by Tristan Croll, 5 years ago

Seems to start happening after a while of working on a crystal structure 
in ISOLDE, but I can't put my finger on what specific action is 
triggering it. Persists after ISOLDE's closed. Would it be possible to 
add some code to the state saving to report which object is causing the 
problem?

On 2020-04-28 09:39, ChimeraX wrote:

comment:2 by Eric Pettersen, 5 years ago

Cc: Eric Pettersen Greg Couch added
Component: UnassignedSessions
Owner: set to Tristan Croll
Platform: all
Project: ChimeraX
Status: newassigned
Summary: ChimeraX bug report submissionSession save: Can't convert object of type: <class 'PyQt5.QtCore.Qt.CheckState'>

comment:3 by Eric Pettersen, 5 years ago

Hi Tristan,

It looks like in some take_snapshot method you have. it is trying to save QCheckBox.checkState(). That returns a QCheckState, not a boolean. Unless you have a 3-state check box, you probably want to save QCheckBox.isChecked() instead (and use QCheckBox.setChecked() in your restore_snapshot).

--Eric

in reply to:  4 ; comment:4 by Tristan Croll, 5 years ago

Nailed it in one! The difference is that in this case I was loading an 
MTZ file via ISOLDE's "Load crystallographic dataset" button (I usually 
use the command line) - and the method for that *does* call checkState() 
to set the live_recalc flag for the map manager. Thanks!

If possible, I think it would still be a good idea if the session save 
code could help pinpoint the offending object.

On 2020-04-28 17:18, ChimeraX wrote:

comment:5 by Eric Pettersen, 5 years ago

Cc: Tristan Croll added; Eric Pettersen Greg Couch removed
Owner: changed from Tristan Croll to Greg Couch
Summary: Session save: Can't convert object of type: <class 'PyQt5.QtCore.Qt.CheckState'>Improve session-saving error information
Type: defectenhancement

I cannot argue that the error message isn't very helpful in tracking down the offending session-save code. I just happened to know off the top of my head where a QCheckState comes from, and from personal experience a typical way you wind up with one when you actually want a boolean (and why a QCheckState fouls up session saving). Without that, it would have been an arduous slog to figure out the cause of the error and the fix. Therefore I have repurposed this ticket as an "improve session-saving error information" RFE.

comment:6 by Eric Pettersen, 5 years ago

Cc: Eric Pettersen added
Note: See TracTickets for help on using tickets.