Informix Error -169
-169 ISAM error: Pages for TEXT or BYTE data can't be allocated from
a chunk until chunk add is logged.When a storage space containing TEXT or BYTE data has been extended by adding a new chunk, no pages can be allocated until the log record showing the addition of the chunk has been logged. If this rule were not enforced, certain anomalies could occur during recovery. You do not have to wait until the log is full; you can run the tbmode or onmode utility with the -l option to force a switch to the next log.
Oninit® Troubleshooting Guidance
Reasons / Common Causes
-169 is a brief, expected, and easily resolved restriction: when a chunk is added to extend
storage for TEXT/BYTE data, new page allocation from that chunk can't happen until the log
record documenting the chunk addition has actually been written. This exists to prevent recovery
anomalies — if the engine crashed before that record was logged, recovery wouldn't correctly know
about the new chunk, so allocating from it prematurely would be unsafe.
- A chunk was just added to a blobspace or storage space, and the log record for that addition hasn't been written yet — it's pending until the current logical log fills and rolls over naturally, or is forced to.
- An application inserting or updating
BYTE/TEXTdata immediately after a chunk was added to accommodate that growth, not realizing there's a brief, expected delay before the new capacity is actually usable. - Low logging activity elsewhere on the system, meaning the current logical log doesn't naturally fill and roll over quickly — extending how long this restriction stays in effect if left to resolve on its own.
- Administrators unaware of the direct workaround, waiting unnecessarily for natural log rollover instead of forcing it immediately after adding the chunk.
Solutions / Resolution
- Don't wait for natural log saturation. Per the official guidance, use
onmode -l(ortbmode -lon older versions) to force the engine to move to the next logical log immediately — this writes the pending chunk-add log record right away and unblocks allocation without delay. - If capacity was just added specifically to relieve space pressure (following a -166 or
-131 situation), follow the chunk addition immediately with
onmode -lso the new capacity becomes usable without unnecessary delay. - Build this step into standard chunk-addition runbooks. Since this is expected and has a
direct, immediate fix, document
onmode -las the standard follow-up step after adding a chunk, rather than leaving administrators to wait it out or treat it as an unexpected error. - If encountered unexpectedly (not immediately after a chunk addition), confirm whether a chunk was in fact recently added and correlate the timing before assuming something else is wrong.
Examples
The standard fix
onspaces -a dbspace1 -p /dev/newchunk -o 0 -s 1000000
-- chunk added successfully
onmode -l
-- forces immediate log rollover, writing the pending chunk-add
-- log record and unblocking new page allocation right away
Without the fix: waiting unnecessarily
onspaces -a dbspace1 -p /dev/newchunk -o 0 -s 1000000
-- chunk added
-- Application immediately attempts to insert new TEXT/BYTE data:
INSERT INTO documents (id, content) VALUES (1001, <large TEXT value>);
-- -169: allocation from the new chunk isn't available yet
-- Without forcing log rollover, this waits until the current
-- logical log fills naturally on its own — potentially a long time
-- on a system with low logging activity
Running onmode -l immediately after the chunk addition avoids this wait entirely.
Diagnostic Checks
- Confirm whether a chunk was recently added to the storage space in question — this is the direct trigger for this condition.
- Check logical log status and rollover history:
onstat -l - Run
onmode -lto force log progression if a recent chunk addition is confirmed as the cause.
Related Errors / Related Topics
- -166 — "ISAM error: Storage space is full." Often the reason a chunk was just added in the first place — worth reviewing together as part of the same capacity-management workflow.
- -168 — "ISAM error: archive is blocking storage space allocation." A different temporary restriction on the same general kind of allocation, tied to backup activity rather than chunk-addition logging.
Run onmode -l immediately after adding any chunk intended for TEXT/BYTE storage — it's the
direct, documented fix, not something to wait out.