Informix Error -311
-311 Cannot open system catalog table-name.
The database server cannot access one of the tables in the system catalog. Check the accompanying ISAM error code for detailed information, and look for operating-system error messages that might give more information.
Oninit® Troubleshooting Guidance
Reasons / Common Causes
-311 is a serious, infrastructure-level error: the server can't even open one of its own system
catalog tables (systables, syscolumns, and similar) for the current database — something well
below the level of an ordinary application query going wrong. The official text points straight
at the accompanying ISAM error code and any OS-level error messages as the real diagnostic path.
- Filesystem or disk-level problems affecting the dbspace/chunk that holds the system catalog — a full disk, a permissions problem, a damaged or offline chunk.
- Database corruption affecting the catalog tables specifically, from an unclean shutdown, hardware failure, or an interrupted operation.
- Insufficient OS-level file permissions on the underlying chunk files for the Informix server process.
- The database or an underlying dbspace is offline or in an inconsistent state, preventing normal catalog access.
Solutions / Resolution
- Check the accompanying ISAM error code first, per the official guidance — it's the primary signal for what's actually failing underneath.
- Check the online log and OS-level error messages for anything relevant occurring at the same time (disk I/O errors, permission denials, chunk status changes).
- Verify the dbspace/chunk holding the database's system catalog is online (
onstat -d) and not marked down or offline. - Check disk space and filesystem-level permissions on the underlying chunk files.
- If corruption is suspected, engage standard DBA recovery procedures (consistency checks, restore from backup) rather than attempting to work around it at the application level — this isn't something a query rewrite can fix.
Examples
Checking chunk/dbspace status
onstat -d
-- look for the dbspace backing this database's system catalog;
-- confirm it isn't marked "D" (down) or otherwise offline
Checking the online log for related messages
onstat -m
-- or review $INFORMIXDIR/online.log directly for I/O errors,
-- permission denials, or chunk-status changes around the same time
Diagnostic Checks
- Read the accompanying ISAM error code for the specific underlying condition.
- Check
onstat -dfor the status of the dbspace/chunk holding the database's system catalog. - Review the online log / OS logs for I/O errors or permission problems at the same timestamp.
- Check available disk space on the filesystem(s) backing the relevant chunks.
Related Errors / Related Topics
- -310 — "Table table-name already exists in database." A much more routine table-naming
condition — useful contrast, since
-311is an infrastructure-level failure rather than an ordinary application-level mistake. - -296 — "Referenced table table-name not available." Another table-access failure, though at the level of an individual application table rather than the system catalog itself.
This is a server/infrastructure-level failure, not a query-writing mistake — the ISAM error code and the online log are the real diagnostic starting points, not the SQL statement itself.