Self-Hosted Version
26.4.2
CPU Architecture
x86_64
Docker Version
25.0.1
Docker Compose Version
2.35.1
Machine Specification
Installation Type
Upgrade from 25.11.0 to 26.4.2
Steps to Reproduce
-
Run a self-hosted Sentry 26.4.2 install with active cron monitors.
-
both the ingest-monitors and ingest-occurrences containers become unhealthy.
-
Check Kafka consumer-group state. Lag starts growing, and after a while both groups show "no active members".
I don't have a clean synthetic reproducer — Once the services enters this state it does not recover on its own. Restart, force-recreate, and offset-reset all fail to fix it permanently.
Expected Result
- ingest-monitors reads check-ins, updates monitor state. and become healthy
- ingest-occurrences reads occurrences, and become healthy
Actual Result
Both consumers are caught in a poll-timeout / no-progress loop and don't recover on their own.
The pattern is the same on both:
- The container starts, the consumer joins Kafka, and "New partitions assigned" is logged.
- After max-poll-interval-ms elapses, librdkafka kicks it out with a MAXPOLL error and the consumer leaves the group.
- CURRENT-OFFSET never moves. Lag grows.
For ingest-occurrences,
11:33:57 [INFO] arroyo.processing.processor: New partitions assigned: {Partition(topic=Topic(name='ingest-occurrences'), index=0): 14419083}
11:33:57 [INFO] arroyo.processing.processor: Member id: 'rdkafka-3acdb193-f381-4426-a2fd-19ee32a59bd9'
11:33:57 [INFO] arroyo.backends.kafka.consumer: Paused partitions after assignment: set()
%4|1778586639.061|MAXPOLL|rdkafka#consumer-1| [thrd:main]: Application maximum poll interval (1000000ms) exceeded by 50ms (adjust max.poll.interval.ms for long-running message processing): leaving group
For ingest-monitors the pattern is similar, MAXPOLL fires:
11:07:53 [INFO] arroyo.processing.processor: New partitions assigned: {Partition(topic=Topic(name='ingest-monitors'), index=0): 5361426}
11:07:53 [INFO] sentry.monitors.consumers.monitor_consumer: monitors.consumer.check_in_closed (guid='77c6299352cf4e4dafe9bdc0f3d0ac30' slug='updateworkerarrivalstatus111001' status=1)
... [~40 check_in_closed lines over 4 seconds] ...
%4|1778584373.597|MAXPOLL|rdkafka#consumer-1| [thrd:main]: Application maximum poll interval (300000ms) exceeded by 289ms (adjust max.poll.interval.ms for long-running message processing): leaving group
Digging into the monitors container further, I found this. The embedded sentry.utils.pubsub Kafka producer can't talk to the broker:
%5|1778613304.136|REQTMOUT|sentry.utils.pubsub#producer-3| [thrd:kafka:9092/1001]: kafka:9092/1001: Timed out MetadataRequest in flight (after 1000ms, timeout #0)
%4|1778613305.139|FAIL|sentry.utils.pubsub#producer-3| [thrd:kafka:9092/1001]: kafka:9092/1001: ApiVersionRequest failed: Local: Timed out: probably due to broker version < 0.10 (after 1001ms in state APIVERSION_QUERY)
%4|1778613306.273|FAIL|sentry.utils.pubsub#producer-3| [thrd:kafka:9092/bootstrap]: kafka:9092/bootstrap: ApiVersionRequest failed: Local: Timed out: probably due to broker version < 0.10 (after 1000ms in state APIVERSION_QUERY)
Consumer-group state:
Consumer group 'ingest-monitors' has no active members.
Consumer group 'ingest-occurrences' has no active members.
GROUP TOPIC PART CURRENT-OFFSET LOG-END-OFFSET LAG
ingest-monitors ingest-monitors 0 5362916 5365054 2138
ingest-occurrences ingest-occurrences 0 14419083 14445920 26837
Event ID
No response
Self-Hosted Version
26.4.2
CPU Architecture
x86_64
Docker Version
25.0.1
Docker Compose Version
2.35.1
Machine Specification
Installation Type
Upgrade from 25.11.0 to 26.4.2
Steps to Reproduce
Run a self-hosted Sentry 26.4.2 install with active cron monitors.
both the ingest-monitors and ingest-occurrences containers become unhealthy.
Check Kafka consumer-group state. Lag starts growing, and after a while both groups show "no active members".
I don't have a clean synthetic reproducer — Once the services enters this state it does not recover on its own. Restart, force-recreate, and offset-reset all fail to fix it permanently.
Expected Result
Actual Result
Both consumers are caught in a poll-timeout / no-progress loop and don't recover on their own.
The pattern is the same on both:
For ingest-occurrences,
11:33:57 [INFO] arroyo.processing.processor: New partitions assigned: {Partition(topic=Topic(name='ingest-occurrences'), index=0): 14419083}
11:33:57 [INFO] arroyo.processing.processor: Member id: 'rdkafka-3acdb193-f381-4426-a2fd-19ee32a59bd9'
11:33:57 [INFO] arroyo.backends.kafka.consumer: Paused partitions after assignment: set()
%4|1778586639.061|MAXPOLL|rdkafka#consumer-1| [thrd:main]: Application maximum poll interval (1000000ms) exceeded by 50ms (adjust max.poll.interval.ms for long-running message processing): leaving group
For ingest-monitors the pattern is similar, MAXPOLL fires:
11:07:53 [INFO] arroyo.processing.processor: New partitions assigned: {Partition(topic=Topic(name='ingest-monitors'), index=0): 5361426}
11:07:53 [INFO] sentry.monitors.consumers.monitor_consumer: monitors.consumer.check_in_closed (guid='77c6299352cf4e4dafe9bdc0f3d0ac30' slug='updateworkerarrivalstatus111001' status=1)
... [~40 check_in_closed lines over 4 seconds] ...
%4|1778584373.597|MAXPOLL|rdkafka#consumer-1| [thrd:main]: Application maximum poll interval (300000ms) exceeded by 289ms (adjust max.poll.interval.ms for long-running message processing): leaving group
Digging into the monitors container further, I found this. The embedded sentry.utils.pubsub Kafka producer can't talk to the broker:
%5|1778613304.136|REQTMOUT|sentry.utils.pubsub#producer-3| [thrd:kafka:9092/1001]: kafka:9092/1001: Timed out MetadataRequest in flight (after 1000ms, timeout #0)
%4|1778613305.139|FAIL|sentry.utils.pubsub#producer-3| [thrd:kafka:9092/1001]: kafka:9092/1001: ApiVersionRequest failed: Local: Timed out: probably due to broker version < 0.10 (after 1001ms in state APIVERSION_QUERY)
%4|1778613306.273|FAIL|sentry.utils.pubsub#producer-3| [thrd:kafka:9092/bootstrap]: kafka:9092/bootstrap: ApiVersionRequest failed: Local: Timed out: probably due to broker version < 0.10 (after 1000ms in state APIVERSION_QUERY)
Consumer-group state:
Consumer group 'ingest-monitors' has no active members.
Consumer group 'ingest-occurrences' has no active members.
GROUP TOPIC PART CURRENT-OFFSET LOG-END-OFFSET LAG
ingest-monitors ingest-monitors 0 5362916 5365054 2138
ingest-occurrences ingest-occurrences 0 14419083 14445920 26837
Event ID
No response