Scala & sbt Errors
Dependency resolution, binary compatibility and type inference failures.
Understanding Scala errors
Scala's most distinctive error class is binary incompatibility: libraries are published per Scala major version, and mixing artifacts built for different versions produces confusing "not a member of" or NoSuchMethodError failures. The %% operator in sbt exists precisely to append the right suffix, and most unresolved-dependency errors are a % where %% was needed.
How to debug Scala errors
- Check the Scala version suffix on every dependency. Use
%%for Scala libraries and plain%only for Java ones. - Run
sbt evictedto list dependencies that were evicted by version conflict. A frequent source of runtime NoSuchMethodError. - Use
sbt dependencyTreeto see the resolved graph and locate the transitive dependency pulling in an old version. - For inference failures, add explicit type annotations at the boundary rather than at the error site; inference failures usually propagate from further up.
- Clear stale state with
sbt cleanand remove~/.ivy2/cacheor~/.cache/coursierentries only for the specific failing artifact.
Tools worth reaching for
sbt evictedsbt dependencyTreecoursier resolvescalac -explainMiMa (binary compat checks)
All 17 Scala errors
- sbt: Conflicting cross-version suffixes in: org.scala-lang.modules NewTwo dependencies pulled in the same library built for different Scala versions, for example scala-xml _2.12 and _2.13…
- sbt: found version conflict(s) in library dependencies NewTwo dependencies need different versions of the same library, sbt picked the newer one, and the version scheme that…
- Scala 3: `_` is no longer supported for a type wildcard, use `?` NewUnderscore is being reclaimed for type lambdas, so existing type wildcards have to be written with a question mark…
- Scala 3: Ambiguous given instances: both X and Y match type NewTwo givens of the same type are in scope with equal specificity, so the compiler refuses to choose between them. A…
- Scala 3: Implicit parameters should be provided with a `using` clause NewFrom Scala 3.7 the compiler warns when you pass an argument to an implicit parameter list by plain application, as in…
- Scala 3: no given instance of type X was found NewThe compiler needed a contextual value and could not find one in scope. This is Scala 3's replacement for implicit…
- Scala module 2.15.2 requires Jackson Databind version >= 2.15.0 and < 2.16.0 Newjackson-module-scala refuses to register unless jackson-databind on the classpath has the same minor version, and…
- Scala: could not find implicit value for parameter NewThe compiler could not supply an implicit argument, usually because the instance exists but is not in scope, or…
- Scala: java.lang.NoSuchMethodError: scala.Predef$.refArrayOps NewThe code compiled against one version of the Scala library and is running against another. Scala guarantees binary…
- Scala: missing parameter type for expanded function NewThe compiler reached a placeholder or a lambda before it knew the expected type, so there is nothing to infer the…
- Scala: NoClassDefFoundError: scala/collection/IterableOnce NewA jar built for a different Scala version is on the classpath. Scala is only binary compatible within a minor version…
- Scala: object X is not a member of package Y NewThe compiler resolved the package and found nothing of that name inside it, so the import fails rather than the usage…
- Scala: recursive value x needs type NewA definition refers to its own name on the right hand side, so the compiler cannot infer the type it is in the middle…
- Scala: sbt unresolved dependencysbt could not download a library: wrong coordinates, a missing resolver, a Scala-version suffix mismatch, or no…
- Scala: type mismatch; found: Unit, required: String NewThe last expression in the block is an assignment or a `for` loop, both of which evaluate to Unit, so the block…
- Scala: value X is not a member of YYou called a method that does not exist on the type, often a missing import for an extension method/implicit, or a…
- Scala: warning: match may not be exhaustive NewThe compiler proved a case is missing from a match on a sealed type, and with fatal warnings enabled the build stops…
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.
- Ruby 20Bundler, migrations, native extensions, encoding and asset compilation.
- Rust 19Borrow checker, ownership moves, trait bounds and lifetime mismatches.
- 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.