![]() |
SWMMVis
6.0.0-alpha.4
Qt6/C++ GIS-based graphical user interface for the SWMMVis engine (6.0.0-alpha.4)
|
Look up a numbered message that a run produced, and find out which of the two numbering systems SWMMVis shows you it belongs to.
A failed run is reported in the simulation status panel as ERROR [n] ERROR mmm: … — the bracketed n is an API error code and the mmm inside the message is an engine error. They are different catalogues; both are below.
Message Logs panel, the simulation status panel while a run is active, and the .rpt status report opened from Analysis → Report. See 20 — Running a Simulation and 24 — Tabular Results and Reports.
For what to do about the common ones, see A5 — Troubleshooting, which carries remediation advice for the messages users actually hit. This appendix is the complete index, not a troubleshooting guide.
This page is generated by scripts/gen_error_catalogue.py from the engine's own enumerations — do not edit it by hand.
| Source | openswmm.engine src/engine/core/ErrorCodes.hpp |
| Engine revision | swmm6_rel @ 62644090 |
| Generated | 2026-09-19 |
| Codes | 128 Engine errors · 21 Engine warnings · 15 API error codes · 7 API warning codes |
scripts/gen_error_catalogue.py --check fails when the engine has gained a code this page does not list; it runs in CI against the engine checkout that build_and_test.yml already makes.
Reported by the engine and shown in the Message Logs and the status report. s stands for the object name the engine names in the message.
| ERROR | Symbol | Message |
|---|---|---|
| 101 | ERR_MEMORY | memory allocation error |
| 103 | ERR_KINWAVE | cannot solve KW equations for Link s |
| 105 | ERR_ODE_SOLVER | cannot open ODE solver |
| 107 | ERR_TIMESTEP | cannot compute a valid time step |
| 108 | ERR_SUBCATCH_OUTLET | ambiguous outlet ID name for Subcatchment s |
| 109 | ERR_AQUIFER_PARAMS | invalid parameter values for Aquifer s |
| 110 | ERR_GROUND_ELEV | ground elevation is below water table for Subcatchment s |
| 111 | ERR_LENGTH | invalid length for Conduit s |
| 112 | ERR_ELEV_DROP | elevation drop exceeds length for Conduit s |
| 113 | ERR_ROUGHNESS | invalid roughness for Conduit s |
| 114 | ERR_BARRELS | invalid number of barrels for Conduit s |
| 115 | ERR_SLOPE | adverse slope for Conduit s |
| 117 | ERR_NO_XSECT | no cross section defined for Link s |
| 119 | ERR_XSECT | invalid cross section for Link s |
| 121 | ERR_NO_CURVE | missing or invalid pump curve assigned to Pump s |
| 122 | ERR_PUMP_LIMITS | startup depth not higher than shutoff depth for Pump s |
| 131 | ERR_LOOP | links form cyclic loops in the drainage system |
| 133 | ERR_MULTI_OUTLET | Node s has more than one outlet link |
| 134 | ERR_DUMMY_LINK | Node s has illegal DUMMY link connections |
| 135 | ERR_DIVIDER | Divider s does not have two outlet links |
| 136 | ERR_DIVIDER_LINK | Divider s has invalid diversion link |
| 137 | ERR_WEIR_DIVIDER | Weir Divider s has invalid parameters |
| 138 | ERR_NODE_DEPTH | Node s has initial depth greater than maximum depth |
| 139 | ERR_REGULATOR | Regulator s is the outlet of a non-storage node |
| 140 | ERR_STORAGE_VOLUME | Storage node s has negative volume at full depth |
| 141 | ERR_OUTFALL | Outfall s has more than 1 inlet link or an outlet link |
| 143 | ERR_REGULATOR_SHAPE | Regulator s has invalid cross-section shape |
| 145 | ERR_NO_OUTLETS | Drainage system has no acceptable outlet nodes |
| 151 | ERR_UNITHYD_TIMES | a Unit Hydrograph in set s has invalid time base |
| 153 | ERR_UNITHYD_RATIOS | a Unit Hydrograph in set s has invalid response ratios |
| 155 | ERR_RDII_AREA | invalid sewer area for RDII at node s |
| 156 | ERR_RAIN_FILE_CONFLICT | ambiguous station ID for Rain Gage s |
| 157 | ERR_RAIN_GAGE_FORMAT | inconsistent rainfall format for Rain Gage s |
| 158 | ERR_RAIN_GAGE_TSERIES | time series for Rain Gage s is also used by another object |
| 159 | ERR_RAIN_GAGE_INTERVAL | recording interval greater than time series interval for Rain Gage s |
| 161 | ERR_CYCLIC_TREATMENT | cyclic dependency in treatment functions at node s |
| 171 | ERR_CURVE_SEQUENCE | Curve s has invalid or out of sequence data |
| 173 | ERR_TIMESERIES_SEQUENCE | Time Series s has its data out of sequence |
| 181 | ERR_SNOWMELT_PARAMS | invalid Snow Melt Climatology parameters |
| 182 | ERR_SNOWPACK_PARAMS | invalid parameters for Snow Pack s |
| 183 | ERR_LID_TYPE | no type specified for LID s |
| 184 | ERR_LID_LAYER | missing layer for LID s |
| 185 | ERR_LID_PARAMS | invalid parameter value for LID s |
| 187 | ERR_LID_AREAS | LID area exceeds total area for Subcatchment s |
| 188 | ERR_LID_CAPTURE_AREA | LID capture area exceeds total impervious area for Subcatchment s |
| 191 | ERR_START_DATE | simulation start date comes after ending date |
| 193 | ERR_REPORT_DATE | report start date comes after ending date |
| 195 | ERR_REPORT_STEP | reporting time step or duration is less than routing time step |
| 200 | ERR_INPUT | one or more errors in input file |
| 201 | ERR_INPUT_LINE | too many characters in input line |
| 203 | ERR_ITEMS | too few items |
| 205 | ERR_KEYWORD | invalid keyword s |
| 207 | ERR_DUP_NAME | duplicate ID name s |
| 209 | ERR_NAME | undefined object s |
| 211 | ERR_NUMBER | invalid number s |
| 213 | ERR_DATETIME | invalid date/time s |
| 217 | ERR_CONTROL_RULE | control rule clause invalid or out of sequence |
| 219 | ERR_TRANSECT_UNKNOWN | data provided for unidentified transect |
| 221 | ERR_TRANSECT_SEQUENCE | transect station out of sequence |
| 223 | ERR_TRANSECT_TOO_FEW | Transect s has too few stations |
| 225 | ERR_TRANSECT_TOO_MANY | Transect s has too many stations |
| 227 | ERR_TRANSECT_MANNING | Transect s has no Manning's N |
| 229 | ERR_TRANSECT_OVERBANK | Transect s has invalid overbank locations |
| 231 | ERR_TRANSECT_NO_DEPTH | Transect s has no depth |
| 233 | ERR_MATH_EXPR | invalid math expression |
| 235 | ERR_INFILTRATION | invalid infiltration parameters |
| 301 | ERR_FILE_NAME | files share same names |
| 303 | ERR_INP_FILE | cannot open input file |
| 305 | ERR_RPT_FILE | cannot open report file |
| 307 | ERR_OUT_FILE | cannot open binary results file |
| 308 | ERR_OUT_SIZE | output will exceed maximum file size |
| 309 | ERR_OUT_WRITE | error writing to binary results file |
| 311 | ERR_OUT_READ | error reading from binary results file |
| 313 | ERR_RAIN_IFACE_SCRATCH | cannot open scratch rainfall interface file |
| 315 | ERR_RAIN_IFACE | cannot open rainfall interface file s |
| 317 | ERR_RAIN_FILE_OPEN | cannot open rainfall data file s |
| 318 | ERR_RAIN_FILE_SEQUENCE | line is out of sequence in rainfall data file s |
| 319 | ERR_RAIN_FILE_FORMAT | unknown format for rainfall data file s |
| 320 | ERR_RAIN_IFACE_FORMAT | invalid format for rainfall interface file |
| 321 | ERR_RAIN_IFACE_GAGE | no data in rainfall interface file for gage s |
| 323 | ERR_RUNOFF_IFACE | cannot open runoff interface file s |
| 325 | ERR_RUNOFF_IFACE_COMPAT | incompatible data found in runoff interface file |
| 327 | ERR_RUNOFF_IFACE_EOF | attempting to read beyond end of runoff interface file |
| 329 | ERR_RUNOFF_IFACE_READ | error in reading from runoff interface file |
| 331 | ERR_HOTSTART_FILE | cannot open hot start interface file s |
| 333 | ERR_HOTSTART_COMPAT | incompatible data found in hot start interface file |
| 335 | ERR_HOTSTART_READ | error in reading from hot start interface file |
| 336 | ERR_NO_CLIMATE_FILE | no climate file specified for evaporation and/or wind speed |
| 337 | ERR_CLIMATE_FILE_OPEN | cannot open climate file s |
| 338 | ERR_CLIMATE_FILE_READ | error in reading from climate file s |
| 339 | ERR_CLIMATE_FILE_EOF | attempt to read beyond end of climate file s |
| 341 | ERR_RDII_IFACE_SCRATCH | cannot open scratch RDII interface file |
| 343 | ERR_RDII_IFACE | cannot open RDII interface file s |
| 345 | ERR_RDII_IFACE_FORMAT | invalid format for RDII interface file |
| 351 | ERR_ROUTING_IFACE | cannot open routing interface file s |
| 353 | ERR_ROUTING_IFACE_FORMAT | invalid format for routing interface file s |
| 355 | ERR_ROUTING_IFACE_NAMES | mis-matched names in routing interface file s |
| 357 | ERR_ROUTING_IFACE_SAME | inflows and outflows interface files have same name |
| 361 | ERR_TABLE_FILE_OPEN | could not open external file used for Time Series s |
| 363 | ERR_TABLE_FILE_READ | invalid data in external file used for Time Series s |
| 500 | ERR_SYSTEM | System exception thrown |
| 501 | ERR_API_NOT_OPENED | project not opened |
| 502 | ERR_API_NOT_STARTED | simulation not started |
| 503 | ERR_API_NOT_ENDED | simulation not ended |
| 504 | ERR_API_OBJECT_TYPE | invalid object type |
| 505 | ERR_API_OBJECT_INDEX | invalid object index |
| 506 | ERR_API_OBJECT_NAME | invalid object name |
| 507 | ERR_API_PROPERTY_TYPE | invalid property type |
| 508 | ERR_API_PROPERTY_VALUE | invalid property value |
| 509 | ERR_API_TIME_PERIOD | invalid time period |
| 601 | ERR_TIMESERIES_EMPTY | Time Series s has no data |
| 603 | ERR_TIMESERIES_NAN | Time Series s contains NaN or Inf values |
| 605 | ERR_TABLE_COL_MISMATCH | column count mismatch in data for s |
| 607 | ERR_GAGE_TSERIES_NOTFOUND | Rain Gage s references unknown time series |
| 609 | ERR_VJ_LINK_COUNT | Virtual Junction s must connect exactly two conduits |
| 611 | ERR_VJ_XSECT_MISMATCH | Virtual Junction s connects conduits with different cross sections |
| 613 | ERR_VJ_OFFSET | Virtual Junction s has a conduit with a nonzero offset |
| 615 | ERR_VJ_INVERT_MISMATCH | Virtual Junction s conduit inverts do not agree at the node |
| 617 | ERR_VJ_LATERAL_INFLOW | Virtual Junction s cannot be coupled to a 2D surface mesh (point laterals are allowed) |
| 619 | ERR_VJ_ROUTING_MODEL | Virtual Junction s requires DYNWAVE or FV flow routing |
| 621 | ERR_VJ_EXTRA_TOKENS | too many items for Virtual Junction s |
| 623 | ERR_IJ_NOT_STREET | Inlet Junction s must connect two STREET conduits (or RECT_OPEN/TRAPEZOIDAL for drop inlets) |
| 625 | ERR_IJ_DESIGN | Inlet Junction s references an unknown inlet design |
| 627 | ERR_IJ_CAPTURE_NODE | Inlet Junction s has an invalid capture node (missing, itself, or virtual) |
| 629 | ERR_IJ_USAGE_ON_PAIR | Inlet Junction s conduit also carries an [INLET_USAGE] entry |
| 631 | ERR_IJ_EXTRA_TOKENS | too many items for Inlet Junction s |
| 633 | ERR_IJ_NO_USAGE | Inlet Junction s has no inlet design assigned |
| 635 | ERR_INLET_USAGE_SHAPE | Inlet s cannot be used with the cross section of s |
The run continues. Warnings are worth reading — several of them mean the engine silently changed something you asked for.
| WARNING | Symbol | Message |
|---|---|---|
| 1 | WARN_WET_STEP_REDUCED | wet weather time step reduced to recording interval for Rain Gage s |
| 2 | WARN_MAX_DEPTH_INCREASED | maximum depth increased for Node s |
| 3 | WARN_NEGATIVE_OFFSET | negative offset ignored for Link s |
| 4 | WARN_MIN_ELEV_DROP | minimum elevation drop used for Conduit s |
| 5 | WARN_MIN_SLOPE | minimum slope used for Conduit s |
| 6 | WARN_DRY_STEP_INCREASED | dry weather time step increased to the wet weather time step |
| 7 | WARN_ROUTING_STEP_REDUCED | routing time step reduced to the wet weather time step |
| 8 | WARN_ELEV_DROP_EXCEEDS | elevation drop exceeds length for Conduit s |
| 9 | WARN_GAGE_INTERVAL | time series interval greater than recording interval for Rain Gage s |
| 10 | WARN_REGULATOR_CREST_LOW | crest elevation is below downstream invert for regulator Link s |
| 11 | WARN_CONTROL_RULE_ATTR | non-matching attributes in Control Rule s |
| 12 | WARN_INLET_REMOVED | inlet removed due to unsupported shape for Conduit s |
| 13 | WARN_UH_PARAMS_REPEATED | parameters for same month provided more than once for Unit Hydrograph s |
| 101 | WARN_TIMESERIES_DUPLICATE_X | Time Series s has duplicate x values |
| 102 | WARN_BOUNDARY_OVERLAP | boundary regions overlap for s |
| 103 | WARN_FILES_SLOT_UNSUPPORTED | [FILES] s is not supported and was ignored |
| 104 | WARN_2D_OPTION_RETIRED | [2D_OPTIONS] s retired with CVODE/ARKODE and was ignored |
| 105 | WARN_FV_OPTION_INERT | s has no effect under FLOW_ROUTING FV |
| 106 | WARN_DW_OPTION_UNDER_FV | s is a dynamic wave option and does not apply under FLOW_ROUTING FV |
| 107 | WARN_RAIN_CSV_ROWS_SKIPPED | unreadable row(s) skipped in rainfall CSV for Rain Gage s |
| 108 | WARN_FV_SLOT_CAP | slot width cap (5% of top width) overrides FV_SLOT_CELERITY for s |
The bracketed number in ERROR [n] … in the simulation status panel. These come from the C API layer; the engine error above is the cause.
| API ERROR | Symbol | Message |
|---|---|---|
| 1 | CFFI_ERR_NOMEM | memory allocation error |
| 2 | CFFI_ERR_INPFILE | cannot open input file |
| 3 | CFFI_ERR_RPTFILE | cannot open report file |
| 4 | CFFI_ERR_OUTFILE | cannot open output file |
| 5 | CFFI_ERR_PARSE | input parsing error |
| 6 | CFFI_ERR_LIFECYCLE | invalid engine lifecycle state transition |
| 7 | CFFI_ERR_BADHANDLE | invalid engine handle |
| 8 | CFFI_ERR_BADINDEX | invalid object index |
| 9 | CFFI_ERR_BADPARAM | invalid parameter value |
| 10 | CFFI_ERR_PLUGIN | plugin initialization or execution error |
| 11 | CFFI_ERR_IO | file I/O error |
| 12 | CFFI_ERR_HOTSTART | hot start file error |
| 13 | CFFI_ERR_CRS | coordinate reference system error |
| 14 | CFFI_ERR_NUMERICAL | numerical solver error |
| 99 | CFFI_ERR_INTERNAL | internal engine error |
The bracketed number of a non-fatal API condition.
| API WARNING | Symbol | Message |
|---|---|---|
| 1 | CFFI_WARN_HOTSTART_MISSING | hot start file not found, cold start used |
| 2 | CFFI_WARN_UNKNOWN_SECTION | unknown section in input file |
| 3 | CFFI_WARN_UNKNOWN_OPTION | unknown option in input file |
| 4 | CFFI_WARN_DEPRECATED_KW | deprecated keyword used |
| 5 | CFFI_WARN_PLUGIN_INIT | plugin initialization warning |
| 6 | CFFI_WARN_NUMERICAL | numerical approximation used |
| 7 | CFFI_WARN_STABILITY_LIMIT | time step reduced for stability |
ERROR [1] ERROR 141: … is API error 1 reporting engine error 141. Look up the inner number first — it is the one that names the object and the cause.s is a placeholder.** The engine substitutes the offending object's ID, so the message you see names the junction, conduit or subcatchment.scripts/gen_error_catalogue.py..rpt status report