SQLStreams

the messaging platform that is just Postgres

You last visited on 9999-99-99 Show what's new since then

Consumer logs

Edit this page
Consumer · Related pages
Posted: 2026-09-16 · Report this thread
brandon Site Admin brandon profile Posts: 96
sqlstreams explain SQL0105

Consumer events identify the affected stream and group through structured fields. Use the nested error or the linked procedure to investigate the failure. The consumer stopped entry defines the final session summary separately.

Claims and lease time

Range bounds use (low, high]: low is excluded, high is included.

level=WARN msg="could not claim messages -- the next claim waits one poll rate" code=SQL0108 group={group} stream_id={stream_id} worker={worker} delay={delay} error={error}
level=WARN msg="queued message has insufficient lease time -- range waits for reclaim; successful handlers in the range can repeat" code=SQL0105 group={group} stream_id={stream_id} low={low} high={high} message_id={message_id} lease_remaining={lease_remaining} message_timeout={message_timeout} timeout_grace={timeout_grace} record_margin={record_margin}
level=WARN msg="lease reclaimed from expired worker" code=SQL0026 group_id={group_id} stream_id={stream_id} low={low} high={high} reclaims={reclaims}
level=WARN msg="range quarantined after max reclaims -- messages written as 'ready' exceptions" code=SQL0027 group_id={group_id} stream_id={stream_id} low={low} high={high} reclaims={reclaims}
Code Emission condition
SQL0108 A retryable claim failure remains after internal retries. The next claim waits one poll interval.
SQL0105 A queued message cannot start with enough time for its consumer handler, timeout grace, and recording. Warns once when its range becomes stale.
SQL0026 The reclaim transaction selects an expired range lease and increments its reclaim count.
SQL0027 Reclaim count reaches MaxRangeReclaims and the transaction starts converting the range into ready exceptions.

Reclaim and quarantine warnings are emitted inside the transaction, before its commit. Use current lease or exception state to confirm the result.

Processing and dead letters

level=WARN msg="delivery dispatch exceeded the duration threshold" code=SQL0039 group={group} stream_id={stream_id} message_id={message_id} attempt={attempt} duration={duration} threshold={threshold}
level=WARN msg="messages dead-lettered -- unrecoverable, will not be retried" code=SQL0028 group_id={group_id} stream_id={stream_id} dead_count={dead_count}
level=WARN msg="message dead-lettered -- unrecoverable, will not be retried" code=SQL0029 group_id={group_id} stream_id={stream_id} message_id={message_id}
level=WARN msg="exception dead-lettered -- unrecoverable, will not be retried" code=SQL0030 group_id={group_id} stream_id={stream_id} message_id={message_id} attempts={attempts}
level=WARN msg="crash-loop kill backstop fired -- exceptions marked dead" code=SQL0031 group_id={group_id} stream_id={stream_id} dead_count={dead_count}
Code Emission condition
SQL0039 Dispatch exceeds a positive SlowDispatchThreshold, regardless of its result. Disabled when the threshold is zero.
SQL0028 A range result commit writes one or more terminal outcomes.
SQL0029 A message’s terminal outcome is recorded.
SQL0030 An exception’s terminal outcome is recorded.
SQL0031 Expired exception attempts reach the crash-loop backstop and are marked dead.

For SQL0039, duration starts when SQLStreams dispatches the message to its consumer handler. It ends when the consumer handler returns or SQLStreams stops waiting after the message timeout and cancellation grace. Queue waiting before dispatch and recording the result afterward are outside this duration. SlowDispatchThreshold controls the warning independently of the message timeout.

SQL0031 reports repeated exception claims that expired before their results were recorded.

Configuration

level=WARN msg="stored message options outside this consumer's bounds -- clamped" code=SQL0032 stored={stored} clamped={clamped}
level=WARN msg="could not refresh group config -- the last copy stays in use" code=SQL0060 group={group} stream_id={stream_id} worker={worker} error={error}
Code Emission condition
SQL0032 Stored options are adjusted to the consumer group’s bounds.
SQL0060 A running instance cannot read its worker’s current configuration.

SQL0032 does not reject the message. Read message defaults and bounds for resolution rules. SQL0060 retains the last usable configuration until a later refresh succeeds.

Suppression and context

A consumer instance suppresses repeated Warn/Error messages for one minute. Different message ids do not create separate suppression keys. The next emitted repeat can carry suppressed_count. Logger-bound fields can add session and worker context to the event fields above.

Errors and diagnostics defines suppression, structured errors, and buffered diagnostic context. Offline Explain prints the full declared messages and their diagnostic queries.