Elixir & Erlang Errors
GenServer timeouts, supervision failures and Mix compilation problems.
Understanding Elixir errors
Elixir errors are shaped by the actor model: a GenServer.call timeout does not mean the server crashed, it means the server was busy for longer than the caller was willing to wait. The right question is usually "what is that process doing?" rather than "why did the call fail?". Because supervisors restart failed processes automatically, transient errors can also hide in the logs while the system appears healthy.
How to debug Elixir errors
- Attach to a running node with
iex --remshand inspect the process:Process.info(pid, :message_queue_len). A growing mailbox means the process is the bottleneck. - Use
:observer.start()to see the supervision tree, process memory and message queues visually. - Move long-running work out of
handle_call. Usehandle_cast, a Task, or a dedicated pool so the GenServer stays responsive. - Check restart intensity. A supervisor that exceeds
max_restartstakes down its own supervisor, producing a cascade that looks like an unrelated failure at the top. - For compile errors in dependencies, run
mix deps.compile --forceand check that any required native toolchain (make, gcc, erlang headers) is installed.
Tools worth reaching for
:observer.start()iex --remshProcess.info/2mix deps.tree:recon
All 18 Elixir errors
- (Mix) You're trying to run :my_app on Elixir v1.15.7 but it has declared NewThe elixir: requirement in mix.exs (for example "~> 1.17") does not match the Elixir on your PATH. It works on your…
- Ecto: (Ecto.Query.CastError) value "abc" in where cannot be cast to type :id NewA value went into a query uncast, usually a path or query parameter straight from Phoenix, and it does not match the…
- Ecto: connection not available and request was dropped from queue NewEvery connection in the pool was busy for longer than queue_target allowed, so DBConnection gave up rather than…
- Ecto: could not lookup Ecto repo MyApp.Repo because it was not started NewEcto found the repo module but no running process registered under it. The code is fine; it is running somewhere the…
- Elixir: (ArgumentError) errors were found at the given arguments NewThis is OTP's wording for a bad argument passed to a built-in function, and the line after it names the argument and…
- Elixir: (DBConnection.ConnectionError) tcp recv: closed NewThe database closed a pooled socket that Ecto still believed was usable, so the checkout succeeded and the query died…
- Elixir: (FunctionClauseError) no function clause matching NewEvery clause of the function was tried and none matched the arguments, either on the pattern or on a guard. Elixir…
- Elixir: (KeyError) key :name not found in: %{"name" => "ada"} NewDot access and `Map.fetch!/2` raise rather than returning nil when a key is missing, and the usual cause is string…
- Elixir: (MatchError) no match of right hand side value: {:error, :enoent} NewA pattern match assumed the happy path and the function returned the error tuple instead, so the process crashed at…
- Elixir: function :crypto.hmac/3 is undefined or private NewOTP 24 removed the old crypto API, so :crypto.hmac/3 no longer exists. Your own code rarely calls it directly: the…
- Elixir: function Foo.bar/1 is undefined (module Foo is not available) NewThe module was never loaded, which in practice means a misspelled alias, a file outside the compile paths, or a…
- Elixir: GenServer call timeout (exited in :gen_server.call)A GenServer.call did not get a reply within 5000ms (default) because the server is overloaded, doing slow work in…
- Elixir: Mix could not compile dependencyA dependency failed to compile due to missing native build tools, a version conflict, or stale build artifacts.
- Elixir: protocol Enumerable not implemented for nil of type Atom NewSomething handed `Enum` a nil where a list was expected, and nil has no Enumerable implementation. The real fault is…
- Elixir: protocol Jason.Encoder not implemented for %MyApp.User{} NewJason will encode maps but not structs it has not been told about, because a struct could contain secrets or other…
- Elixir: protocol String.Chars not implemented for %{} of type Map NewString interpolation calls to_string/1, and only a few types implement it: maps, lists, tuples and structs do not. The…
- Phoenix: (Phoenix.Router.NoRouteError) no route found for GET /api/users NewNo clause in the router matched, so Phoenix raises rather than quietly returning 404 in development. The path is…
- Phoenix: WebSocket connection rejected by check_origin NewPhoenix rejects socket connections whose Origin header is not in the allowed list. Behind a reverse proxy the origin…
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.
- 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.
- MessageQueue 20Kafka, RabbitMQ, SQS, NATS and Celery: lag, rebalancing and poison messages.
- 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.