Ruby & Rails Errors
Bundler, migrations, native extensions, encoding and asset compilation.
Understanding Ruby errors
Ruby errors are dominated by Bundler and gem resolution, native extension compilation (which needs system headers Ruby cannot install for you), and in Rails by the pending-migration and asset-precompilation guards. Those guards are deliberate safety checks, so the fix is to satisfy them rather than to disable them.
How to debug Ruby errors
- Run
bundle installwith verbose output and read which gem fails and why. Native extension failures name the missing header in the mkmf log. - Check the mkmf log path the error prints. It contains the actual compiler error, which the Bundler summary truncates.
- For Rails migration errors, run
rails db:migrate:statusto see exactly which migrations the database has recorded. - For asset errors in production, confirm
rails assets:precompileran during deployment and that the manifest is present inpublic/assets. - Verify the Ruby version matches
.ruby-versionand the Gemfile. Version managers silently switch, producing gem-not-found errors for gems that are installed elsewhere.
Tools worth reaching for
bundle install --verboserails db:migrate:statusgem envrbenv/rvm version checkbundle exec
All 20 Ruby errors
- Bundler: Could not find gemBundler cannot locate the specified gem in any of the configured sources (e.g., RubyGems).
- Bundler: Your bundle only supports platforms ["arm64-darwin-23"] NewGemfile.lock records the platforms it was resolved for, and it was generated on a Mac, so the Linux CI runner or…
- Encoding::InvalidByteSequenceErrorA string contains bytes that are invalid for the expected encoding (e.g., invalid UTF-8 bytes).
- LoadError: cannot load such fileRuby cannot find the required file or gem. The gem may not be installed, or the require path is incorrect.
- Rails: ActionController::InvalidAuthenticityToken NewThe CSRF token in the request did not match the one in the session. Rails keeps the session in a cookie signed with…
- Rails: ActiveRecord::NoDatabaseError: We could not find your database NewRails reached the database server and logged in, but the database it asked for does not exist there. That rules out…
- Rails: Asset not precompiledA referenced asset (CSS, JS, image) was not included in the precompiled asset list for production.
- Rails: Blocked hosts: myapp.example.com NewThis is Rails' own HostAuthorization middleware, added in Rails 6 to stop DNS rebinding attacks, refusing a Host…
- Rails: could not obtain a connection from the pool within 5.000 seconds NewEach thread that touches the database needs its own connection, and every connection in the pool stayed checked out…
- Rails: Missing encryption key to decrypt file with NewRails found config/credentials.yml.enc but has no key to open it, because config/master.key is git-ignored and…
- Rails: No route matchesThe requested URL does not match any route defined in config/routes.rb.
- Rails: PendingMigrationErrorDatabase schema migrations have not been applied to the database.
- Ruby 3: ArgumentError: wrong number of arguments (given 2, expected 1) NewRuby 3.0 separated keyword arguments from positional ones, so a hash passed where a method expects keywords is now…
- Ruby: can't modify frozen String NewThe string is frozen, either by a `# frozen_string_literal: true` magic comment, by Ruby's chilled-string deprecation…
- Ruby: Failed to build gem native extensionA gem with C extensions failed to compile because system libraries or development headers are missing.
- Ruby: Psych::BadAlias: Unknown alias: default NewPsych 4, the YAML library that ships with Ruby 3.1 onwards, made YAML.load safe by default, and safe loading refuses…
- Ruby: syntax error, unexpected end-of-inputRuby parser reached end of file but expected more code. Often missing 'end' keyword for a block.
- Ruby: warning: csv was loaded from the standard library NewRuby 3.4 moved csv, base64, bigdecimal and several other libraries out of the default gems and into bundled gems, and…
- Ruby: Your Ruby version is 3.3.5, but your Gemfile specified 3.2.2 NewBundler compares the running interpreter with the ruby directive in the Gemfile and refuses to go further. A version…
- Zeitwerk::NameError: expected file app/models/user.rb to define constant User NewSince Rails 7, Zeitwerk is the only autoloader, and it maps every file path to exactly one constant name. The file…
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.
- 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.
- 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.