"ValueError: min() arg is an empty sequence"

35 views
Skip to first unread message

James Dalziel

unread,
Nov 5, 2025, 9:56:02 AMNov 5
to OpenQuake Users
I'm attempting to run an event-based risk analysis for a portfolio in Japan using OpenQuake's WebUI, and keep encountering the above error. I've tried updating my version of OQ and had a colleague run the job on his machine and found the same result, so it seems to be an issue somewhere in the input files. The OQ support team have apparently been able to run the job successfully by changing the number of logic tree samples, though when I tried this I still got the same error back. Full tracelog below:

2025-11-05T14:18:37.99,INFO,SpawnProcess-1/22020,DalzielJa@PCM-5KC32F3 running C:\Users\DALZIE~1\AppData\Local\Temp\DalzielJa\calc_56\job_name\job_PGA.ini [--hc=None]

2025-11-05T14:18:38.00,INFO,SpawnProcess-1/22020,Using engine version 3.23.3

2025-11-05T14:18:38.33,WARNING,SpawnProcess-1/22020,Using 4 processpool workers

2025-11-05T14:18:39.88,INFO,SpawnProcess-1/22020,Checksum of the inputs: 2355249602 (total size 106.82 MB)

2025-11-05T14:18:39.91,INFO,SpawnProcess-1/22020,Running PreClassicalCalculator with concurrent_tasks = 8

2025-11-05T14:18:39.92,INFO,SpawnProcess-1/22020,Extracting the hazard sites from the site model

2025-11-05T14:18:40.11,INFO,SpawnProcess-1/22020,Read N=31065 hazard sites and L=25 hazard levels

2025-11-05T14:18:40.12,INFO,SpawnProcess-1/22020,Reading C:\Users\DALZIE~1\AppData\Local\Temp\DalzielJa\calc_56\job_name\ssmLT.xml

2025-11-05T14:18:40.44,INFO,SpawnProcess-1/22020,Building 1 realizations

2025-11-05T14:18:40.45,INFO,SpawnProcess-1/22020,Reading the source model(s) in parallel

2025-11-05T14:18:54.09,WARNING,SpawnProcess-1/22020,Sent 1 read_source_model tasks, 0 B

2025-11-05T14:18:54.11,INFO,SpawnProcess-1/22020,Received 1 * 75 B in 13 seconds [unpik=0.00s] from read_source_model {'tot': '75 B'}

2025-11-05T14:18:54.19,ERROR,SpawnProcess-1/22020,Traceback (most recent call last): File "C:\Users\dalzielja\AppData\Local\Programs\OpenQuake Engine\python3\Lib\site-packages\openquake\engine\engine.py", line 208, in run_calc calc.run(shutdown=True) File "C:\Users\dalzielja\AppData\Local\Programs\OpenQuake Engine\python3\Lib\site-packages\openquake\calculators\base.py", line 339, in run raise exc from None File "C:\Users\dalzielja\AppData\Local\Programs\OpenQuake Engine\python3\Lib\site-packages\openquake\calculators\base.py", line 325, in run self.pre_execute() File "C:\Users\dalzielja\AppData\Local\Programs\OpenQuake Engine\python3\Lib\site-packages\openquake\calculators\base.py", line 719, in pre_execute calc.run(remove=False) File "C:\Users\dalzielja\AppData\Local\Programs\OpenQuake Engine\python3\Lib\site-packages\openquake\calculators\base.py", line 339, in run raise exc from None File "C:\Users\dalzielja\AppData\Local\Programs\OpenQuake Engine\python3\Lib\site-packages\openquake\calculators\base.py", line 325, in run self.pre_execute() File "C:\Users\dalzielja\AppData\Local\Programs\OpenQuake Engine\python3\Lib\site-packages\openquake\calculators\base.py", line 729, in pre_execute self.read_inputs() File "C:\Users\dalzielja\AppData\Local\Programs\OpenQuake Engine\python3\Lib\site-packages\openquake\calculators\base.py", line 608, in read_inputs self.csm = csm = readinput.get_composite_source_model( ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "C:\Users\dalzielja\AppData\Local\Programs\OpenQuake Engine\python3\Lib\site-packages\openquake\commonlib\readinput.py", line 1000, in get_composite_source_model csm = source_reader.get_csm(oqparam, full_lt, dstore) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "C:\Users\dalzielja\AppData\Local\Programs\OpenQuake Engine\python3\Lib\site-packages\openquake\hazardlib\source_reader.py", line 277, in get_csm h5=dstore if dstore else None).reduce() ^^^^^^^^ File "C:\Users\dalzielja\AppData\Local\Programs\OpenQuake Engine\python3\Lib\site-packages\openquake\baselib\parallel.py", line 924, in reduce return self.submit_all().reduce(agg, acc) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "C:\Users\dalzielja\AppData\Local\Programs\OpenQuake Engine\python3\Lib\site-packages\openquake\baselib\parallel.py", line 608, in reduce for result in self: File "C:\Users\dalzielja\AppData\Local\Programs\OpenQuake Engine\python3\Lib\site-packages\openquake\baselib\parallel.py", line 594, in __iter__ yield from self._iter() File "C:\Users\dalzielja\AppData\Local\Programs\OpenQuake Engine\python3\Lib\site-packages\openquake\baselib\parallel.py", line 584, in _iter out = result.get() ^^^^^^^^^^^^ File "C:\Users\dalzielja\AppData\Local\Programs\OpenQuake Engine\python3\Lib\site-packages\openquake\baselib\parallel.py", line 414, in get raise etype(msg) ValueError: File "C:\Users\dalzielja\AppData\Local\Programs\OpenQuake Engine\python3\Lib\site-packages\openquake\baselib\parallel.py", line 437, in new val = func(*args) ^^^^^^^^^^^ File "C:\Users\dalzielja\AppData\Local\Programs\OpenQuake Engine\python3\Lib\site-packages\openquake\hazardlib\source_reader.py", line 164, in read_source_model [sm] = nrml.read_source_models([fname], converter) ^^^^ File "C:\Users\dalzielja\AppData\Local\Programs\OpenQuake Engine\python3\Lib\site-packages\openquake\hazardlib\nrml.py", line 336, in read_source_models sm = to_python(fname, converter) ^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "C:\Users\dalzielja\AppData\Local\Programs\OpenQuake Engine\python3\Lib\site-packages\openquake\hazardlib\nrml.py", line 175, in to_python return node_to_obj(node, fname, *args) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "C:\Users\dalzielja\AppData\Local\Programs\OpenQuake Engine\python3\Lib\site-packages\openquake\baselib\general.py", line 690, in __call__ return self[key](obj, *args, **kw) ^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "C:\Users\dalzielja\AppData\Local\Programs\OpenQuake Engine\python3\Lib\site-packages\openquake\hazardlib\nrml.py", line 223, in get_source_model_05 sg = converter.convert_node(src_group) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "C:\Users\dalzielja\AppData\Local\Programs\OpenQuake Engine\python3\Lib\site-packages\openquake\hazardlib\sourceconverter.py", line 757, in convert_node obj = getattr(self, 'convert_' + name)(node) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "C:\Users\dalzielja\AppData\Local\Programs\OpenQuake Engine\python3\Lib\site-packages\openquake\hazardlib\sourceconverter.py", line 1246, in convert_sourceGroup sg.update(src) File "C:\Users\dalzielja\AppData\Local\Programs\OpenQuake Engine\python3\Lib\site-packages\openquake\hazardlib\sourceconverter.py", line 273, in update _, max_mag = src.get_min_max_mag() ^^^^^^^^^^^^^^^^^^^^^ File "C:\Users\dalzielja\AppData\Local\Programs\OpenQuake Engine\python3\Lib\site-packages\openquake\hazardlib\source\non_parametric.py", line 113, in get_min_max_mag min_mag = min(rup.mag for rup, pmf in self.data) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ValueError: min() arg is an empty sequence

James Dalziel

unread,
Nov 5, 2025, 10:46:46 AMNov 5
to OpenQuake Users
To provide some more detail for additional context:

OQ Versions tested - 3.19 (colleague's machine), 3.23.1, 3.23.3 (my machine before and after update).

System specs - 11th Gen Intel Core i5-1145G7 @ 2.60GHz, 16GB RAM, Intel Iris Xe Graphics Card @ 128MB, Windows 11 Enterprise.

From initial conversations and inspecting various files in the input folder, I suspect the error may be related to reading the source model for Japan. I've previously been able to run a similar job for assets in Cyprus with no similar issues.

Any thoughts or assistance appreciated, thanks.
--
James Dalziel, Willis Research Network

James Dalziel

unread,
Nov 6, 2025, 5:55:47 AMNov 6
to OpenQuake Users
I have since been able to resolve this issue with the help of the OQ support team. For anyone else who may experience similar in future, it was because I had only the 'nied_50.xml' file added to my 'ssm' folder, and also needed the .hdf5 file present for the run to execute successfully. As I'd only gotten an error for needing the .xml file present when checking my input files, I hadn't realised both were needed. 

The support team has said an additional error message for needing the .hdf5 file will be added to the next OQ release, so hopefully this shouldn't be a problem for those using newer versions.

Reply all
Reply to author
Forward
0 new messages