Java & JVM Errors
Class loading, dependency resolution, connection pools and JVM version mismatches.
Understanding Java errors
Java errors concentrate at the class loading boundary (ClassNotFoundException, NoClassDefFoundError, UnsupportedClassVersionError) and around resource pools under load. Class loading errors are almost always classpath or version problems rather than missing code. UnsupportedClassVersionError in particular is a pure bytecode-version mismatch and tells you exactly which JDK compiled the class.
How to debug Java errors
- Print the actual runtime version with
java -versionand compare it against your build target. Major bytecode version 65 is Java 21, 61 is Java 17, 52 is Java 8. - Inspect the resolved dependency tree (
mvn dependency:tree,gradle dependencies) to find duplicate or conflicting versions of the same library. - For pool exhaustion, log pool metrics (HikariCP exposes active, idle and pending counts). Exhaustion means connections are not being returned, which is a try-with-resources problem.
- Enable
-verbose:classtemporarily to see which jar a class is loaded from when two versions are on the classpath. - Capture a heap dump on OOM with
-XX:+HeapDumpOnOutOfMemoryErrorand analyse it rather than raising-Xmxblindly.
Tools worth reaching for
mvn dependency:treejcmd / jstack / jmap-verbose:classEclipse MATJFR (Java Flight Recorder)
All 19 Java errors
- Cannot get a connection, pool errorThe database connection pool (HikariCP, DBCP, etc.) has no available connections. All connections are in use and the…
- ClassCastExceptionAn object was cast to a type it is not an instance of. Common when using raw types or incorrect downcasting.
- ConcurrentModificationExceptionA collection was modified while being iterated over. This can happen in single-threaded code when modifying a list…
- Could not resolve dependenciesMaven or Gradle cannot download or resolve project dependencies. May be caused by missing repositories, network…
- Java: Cannot invoke "String.length()" because "s" is null NewThis is a helpful NullPointerException message, on by default since Java 15, and it names the exact expression that…
- Java: error: invalid target release: 21 NewThe build asked javac for a release the JDK on PATH cannot produce, which means the compiler running the build is…
- Java: java.lang.OutOfMemoryError: Java heap space NewThe heap could not satisfy an allocation after a full collection. Raising -Xmx only helps when the working set…
- Java: java.lang.OutOfMemoryError: Metaspace NewMetaspace holds class metadata rather than objects, so raising the heap changes nothing. It fills when an application…
- Java: NoClassDefFoundError: Could not initialize class X NewThis is not a missing class. The class was found, its static initialiser ran and threw, and every later use reports…
- Java: NoSuchMethodError NewA method that existed when the class was compiled is missing at runtime. It means two versions of a library are on the…
- Java: PKIX path building failed, unable to find valid certification path NewThe JVM could not build a trust chain to the server's certificate. Java keeps its own truststore rather than using the…
- Maven: Could not transfer artifact, transfer failed NewMaven could not download a dependency. Beyond a plain outage the frequent causes are credentials missing for a private…
- Spring Boot: BeanDefinitionOverrideExceptionTwo beans have the same name, and Spring Boot's default configuration prevents silent overriding (since 2.1).
- Spring Boot: Failed to configure a DataSource ('url' attribute is not specified) NewSpring Boot detected a database driver on the classpath and tried to auto-configure a DataSource, but found no…
- Spring Boot: IllegalStateException: Failed to load ApplicationContext NewA test could not build its context, and the message that matters is further down the caused by chain rather than on…
- Spring Boot: required a bean of type 'X' that could not be found NewComponent scanning starts at the package of the class annotated with @SpringBootApplication and covers only that…
- Spring Boot: Web server failed to start (port 8080 was already in use) NewAnother process holds the port. Usually a previous run of the same application that did not shut down, or a second…
- StackOverflowErrorThe call stack has exceeded its maximum size, usually caused by infinite recursion or extremely deep recursive calls.
- UnsupportedClassVersionErrorA class was compiled with a newer version of the JDK than the JRE running it. For example, compiled with Java 17 but…
Other categories
- AI 35Rate limits, context windows, GPU memory and model-serving failures.
- Ansible 10Unreachable hosts, become passwords, undefined variables and Jinja2 failures.
- API 14Auth headers, payload limits, versioning, idempotency and webhook signatures.
- Apple 10Command line tools, dyld, Homebrew permissions, notarisation and Keychain.
- Auth 11OIDC, SAML, Auth0, Okta, Keycloak, passkeys and MFA failures.
- BigData 11Spark, Kafka, Airflow, Snowflake, Flink and Databricks failures.
- C# 12NuGet restore, null references, EF Core migrations, async deadlocks and Blazor…
- C++ 11Segfaults, linker errors, memory corruption and template deduction failures.
- Caching 10Cache 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 10Null safety, pub version solving and build toolchain problems.
- Database 41Connections, deadlocks, constraints, replication and memory limits.
- DNS 10NXDOMAIN, SERVFAIL, timeouts, propagation and delegation problems.
- Docker 27Daemon connectivity, disk space, image pulls, ports and architecture mismatches.
- Elixir 9GenServer timeouts, supervision failures and Mix compilation problems.
- Email 8Delivery 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 13Validation, depth limits, N+1 queries and fragment problems.
- gRPC 10Status 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 8404 default backend, missing TLS secrets, IngressClass and path matching.
- JavaScript 42npm resolution, async pitfalls, hydration, memory limits and runtime type…
- Kubernetes 34CrashLoopBackOff, ImagePullBackOff, OOMKilled, RBAC, scheduling and storage.
- Logging 9Log4j, Logback, Fluentd, Logstash and CloudWatch ingestion problems.
- MessageQueue 14Kafka, RabbitMQ, SQS, NATS and Celery: lag, rebalancing and poison messages.
- Mobile 17Gradle, CocoaPods, Xcode signing, Metro bundler and toolchain mismatches.
- Monitoring 12Prometheus scrapes, Grafana data sources, OpenTelemetry exporters and agent…
- Network 35Refused connections, timeouts, resets, MTU problems and port exhaustion.
- Performance 6GC pauses, thread pool starvation and event loop blocking.
- PHP 11Memory limits, execution timeouts, autoloading, Composer and PDO connections.
- Proxy 17nginx, Envoy, HAProxy, Traefik, Caddy and Cloudflare upstream failures.
- Python 35Imports, virtual environments, encoding, concurrency and dependency conflicts.
- Regex 8Catastrophic backtracking, back references, escaping and engine differences.
- Ruby 11Bundler, migrations, native extensions, encoding and asset compilation.
- Rust 19Borrow checker, ownership moves, trait bounds and lifetime mismatches.
- Scala 6Dependency resolution, binary compatibility and type inference failures.
- Security 25JWT validation, CSRF, OAuth grants, SELinux, SSH host keys and CSP.
- Serverless 11Lambda timeouts, package size limits, VPC networking and cold starts.
- Shell 13Command not found, permissions, quoting, expansion and Makefile syntax.
- Storage 13S3 permissions, NFS mounts, quotas, signed URLs and volume attachment.
- Svelte 10Store 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 8VirtualBox, VMware, Hyper-V, WSL, KVM and hypervisor conflicts.
- Web3 7Gas estimation, nonce management and reverted transactions.
- WebAssembly 7Compile errors, memory bounds and host binding mismatches.
- WebServer 10nginx, Apache, IIS and Caddy: binding, permissions, rewrites and TLS.
- Windows 10Installer failures, missing runtimes, update errors and permission problems.