Message Queue & Streaming Errors
Kafka, RabbitMQ, SQS, NATS and Celery: lag, rebalancing and poison messages.
Understanding MessageQueue errors
Queue errors are usually about the balance between producers and consumers. Growing lag means consumers cannot keep up. Endless rebalancing usually means consumers are being evicted for exceeding a poll or heartbeat interval, not that the cluster is unhealthy. A poison message, one that always fails processing, will block an ordered partition forever unless there is a dead-letter path, which is why a DLQ is not optional in production.
How to debug MessageQueue errors
- Measure lag over time, not once:
kafka-consumer-groups --describe --group <g>. The trend distinguishes a throughput problem from a stuck consumer. - For repeated rebalancing, compare processing time per batch against
max.poll.interval.ms. Slow processing looks exactly like a dead consumer to the coordinator. - Always configure a dead-letter queue with a bounded retry count. Without one, a single malformed message stops the partition indefinitely.
- Check message size against the broker limit before assuming a network failure: SQS caps at 256 KB, Kafka at
message.max.bytes. - Verify consumer ACLs and topic authorisation separately from connectivity; an authorisation failure often surfaces as a metadata error.
Tools worth reaching for
kafka-consumer-groupsrabbitmqctl list_queuesaws sqs get-queue-attributeskafkacat / kcatflower (Celery)
All 20 MessageQueue errors
- AWS SQS: Message too large (256KB limit)The SQS message body exceeds the 256KB maximum size limit.
- AWS SQS: The specified queue does not exist or you do not have access to it NewSQS gives the same answer whether the queue is missing or you lack permission, so you cannot tell which from the…
- Celery: Received unregistered task of type 'myapp.tasks.send_email' NewThe worker took a message off the queue but has never imported the module that defines the task, so it has no idea…
- Celery: WorkerLostErrorA Celery worker process died unexpectedly during task execution, often due to OOM kill, segfault, or os._exit() in the…
- Connection to node -1 could not be established. Broker may not be available. NewNode -1 is the bootstrap server, so the client could not even make its first connection. If bootstrap works and a…
- Kafka: LEADER_NOT_AVAILABLEPartition has no elected leader. Broker down, ISR empty, or topic just created and metadata not propagated.
- Kafka: Offset out of rangeConsumer trying to read from offset that doesn't exist. Data retention deleted old messages.
- Kafka: RecordTooLargeException NewA message exceeded a size limit. Three separate limits must agree: the producer's max.request.size, the broker or…
- Kafka: The coordinator is not available (COORDINATOR_NOT_AVAILABLE) NewConsumer groups and transactions need the internal __consumer_offsets topic, and the broker cannot find a healthy…
- Kafka: Topic authorization failedThe Kafka client does not have the required ACL permissions to produce to or consume from the topic.
- Kafka: UNKNOWN_TOPIC_OR_PARTITION NewThe client asked for a topic the broker does not know about. Either the topic genuinely does not exist, auto-creation…
- Message Queue: Consumer lag too highMessages accumulating faster than consumers can process. Queue backlog growing.
- Message Queue: Poison message blocking queueMessage causing consumer to crash repeatedly. Message stuck in queue blocking other messages.
- NATS: Slow consumer detectedA NATS subscriber cannot process messages fast enough and its pending message buffer is full. The server may…
- RabbitMQ: ACCESS_REFUSED - Login was refused using authentication mechanism NewThe broker rejected the username and password, but the credentials are not always what is wrong. The default guest…
- RabbitMQ: connection blocked by a resource alarm NewThe broker raised a memory or disk alarm and stopped reading from publishing connections. Consumers keep working…
- RabbitMQ: Connection refusedCannot connect to RabbitMQ server. Service not running, wrong port, or firewall blocking.
- RabbitMQ: PRECONDITION_FAILED - delivery acknowledgement on channel 1 timed out NewA consumer held a message unacknowledged for longer than consumer_timeout, 30 minutes by default, so the broker closed…
- RabbitMQ: PRECONDITION_FAILED - inequivalent arg for queue NewThe queue already exists with different properties than the ones being declared: durability, TTL, dead-letter routing…
- RabbitMQ: Queue length limit exceededA queue has reached its maximum length policy. New messages are being dropped or dead-lettered.
Other categories
- AI 35Rate limits, context windows, GPU memory and model-serving failures.
- Ansible 18Unreachable hosts, become passwords, undefined variables and Jinja2 failures.
- API 20Auth headers, payload limits, versioning, idempotency and webhook signatures.
- Apple 20Command line tools, dyld, Homebrew permissions, notarisation and Keychain.
- Auth 20OIDC, SAML, Auth0, Okta, Keycloak, passkeys and MFA failures.
- BigData 17Spark, Kafka, Airflow, Snowflake, Flink and Databricks failures.
- C# 18NuGet restore, null references, EF Core migrations, async deadlocks and Blazor…
- C++ 20Segfaults, linker errors, memory corruption and template deduction failures.
- Caching 20Cache stampedes, stale content, Varnish and CloudFront failures.
- CI/CD 18GitHub Actions, GitLab CI, Jenkins, CircleCI: permissions, runners and…
- Client 21CORS, mixed content, module resolution, memory limits and framework runtime…
- Cloud 25IAM permissions, quotas, service limits and credential failures.
- Dart 20Null safety, pub version solving and build toolchain problems.
- Database 41Connections, deadlocks, constraints, replication and memory limits.
- DNS 20NXDOMAIN, SERVFAIL, timeouts, propagation and delegation problems.
- Docker 27Daemon connectivity, disk space, image pulls, ports and architecture mismatches.
- Elixir 18GenServer timeouts, supervision failures and Mix compilation problems.
- Email 20Delivery failures, relay denial, authentication, SPF, DKIM and DMARC.
- Frontend 23Hydration mismatches, bundler resolution, layout shift and font loading.
- Git 20Merge conflicts, rejected pushes, detached HEAD, LFS and repository corruption.
- Go 19Nil map assignment, concurrent map access, context cancellation and deadlocks.
- GraphQL 19Validation, depth limits, N+1 queries and fragment problems.
- gRPC 17Status codes, deadlines, message limits, TLS and HTTP/2 transport failures.
- HTTP 494xx client errors, 5xx server errors, redirects, headers and protocol problems.
- ICMP 23Destination unreachable, time exceeded, fragmentation needed and redirects.
- Ingress 20404 default backend, missing TLS secrets, IngressClass and path matching.
- Java 19Class loading, dependency resolution, connection pools and JVM version…
- JavaScript 42npm resolution, async pitfalls, hydration, memory limits and runtime type…
- Kubernetes 34CrashLoopBackOff, ImagePullBackOff, OOMKilled, RBAC, scheduling and storage.
- Logging 18Log4j, Logback, Fluentd, Logstash and CloudWatch ingestion problems.
- Mobile 20Gradle, CocoaPods, Xcode signing, Metro bundler and toolchain mismatches.
- Monitoring 18Prometheus scrapes, Grafana data sources, OpenTelemetry exporters and agent…
- Network 35Refused connections, timeouts, resets, MTU problems and port exhaustion.
- Performance 19GC pauses, thread pool starvation and event loop blocking.
- PHP 20Memory limits, execution timeouts, autoloading, Composer and PDO connections.
- Proxy 20nginx, Envoy, HAProxy, Traefik, Caddy and Cloudflare upstream failures.
- Python 35Imports, virtual environments, encoding, concurrency and dependency conflicts.
- Regex 17Catastrophic backtracking, back references, escaping and engine differences.
- Ruby 20Bundler, migrations, native extensions, encoding and asset compilation.
- Rust 19Borrow checker, ownership moves, trait bounds and lifetime mismatches.
- Scala 17Dependency resolution, binary compatibility and type inference failures.
- Security 25JWT validation, CSRF, OAuth grants, SELinux, SSH host keys and CSP.
- Serverless 20Lambda timeouts, package size limits, VPC networking and cold starts.
- Shell 19Command not found, permissions, quoting, expansion and Makefile syntax.
- Storage 19S3 permissions, NFS mounts, quotas, signed URLs and volume attachment.
- Svelte 20Store subscriptions, load functions and server/client boundaries.
- System 26Disk space, systemd units, file descriptors, OOM killer and scheduled jobs.
- Terraform 18State locks, provider auth, drift, dependency cycles and plan-time unknowns.
- Testing 18Jest, pytest, JUnit, Cypress and Playwright: fixtures, snapshots and timeouts.
- TLS 24Untrusted authorities, expiry, hostname mismatch, chains and cipher negotiation.
- TypeScript 19Assignability, missing declarations, strict null checks and generic constraints.
- Virtualization 20VirtualBox, VMware, Hyper-V, WSL, KVM and hypervisor conflicts.
- Web3 17Gas estimation, nonce management and reverted transactions.
- WebAssembly 17Compile errors, memory bounds and host binding mismatches.
- WebServer 20nginx, Apache, IIS and Caddy: binding, permissions, rewrites and TLS.
- Windows 20Installer failures, missing runtimes, update errors and permission problems.