Informix Error -250
-250 Cannot read record from file for update.
The database server cannot get a row of a table prior to update. Check the accompanying ISAM error code for more information. Possibly another user has locked the row or the table, or possibly a more serious problem exists.
Oninit® Troubleshooting Guidance
Reasons / Common Causes
-250 is closely related to -233, but specifically about failing to read a row in preparation for updating it. The official text names two branches: a lock conflict, or something more serious.
- Another user has locked the row or the table — the same lock-conflict family as -233 (-107, -113, -134, -143, -144, -154).
- A more serious underlying problem — corruption or hardware issues, the same family as -242/-243/-244.
Solutions / Resolution
- Check the accompanying ISAM error code first, per the official guidance.
- If a lock conflict, apply the same retry-with-backoff approach as -233 — this is often transient.
- If something more serious, follow -242/-243's diagnostic path —
oncheck/secheck/tbcheck, and a check of underlying hardware.
Examples
Checking the accompanying code first
-- The specific ISAM error code accompanying -250 determines the fix:
-- -107/-113/-134/-143/-144/-154: a lock conflict — retry with backoff
-- otherwise: treat as a possible corruption/hardware issue, per -242/-243
Diagnostic Checks
- Check the accompanying ISAM error code for the specific underlying cause.
- If a lock conflict is confirmed, check current locks (
onstat -k) to identify the holding session. - If not a lock conflict, run
oncheck/secheck/tbcheckto check table and index integrity.
Related Errors / Related Topics
- -233 — "Cannot read record that is locked by another user." The closest sibling — the same lock-conflict family, for a general read rather than one preparing to update.
- -242 — "Could not open database table table-name." The corruption/hardware-issue sibling for the "more serious problem" branch.
Check the accompanying ISAM error code first to determine whether this is an ordinary lock conflict (retry) or something more serious (check table/index integrity).