Unable to start DynamoDB Local process

TL;DR — DynamoDB Local (a Java app) couldn't launch. The usual causes are a missing or too-old Java runtime, port 8000 already taken, or the serverless-dynamodb plugin never downloaded the jar. Fix Java, free the port, or re-install.

What it means

You'll see it from the serverless-dynamodb / serverless-dynamodb-local plugin, or when running the jar directly:

Unable to start DynamoDB Local process!

The child process that runs the local emulator failed to spawn or exited immediately.

Why it happens

  • No Java, or an incompatible version. DynamoDB Local needs a Java runtime — current versions (v2.6.0 and newer, including v3.x) require JRE 17+. If java -version fails, that's it; if it prints an old version, you'll often see UnsupportedClassVersionError in the underlying output.
  • Port already in use — something else is on 8000 (a previous instance that didn't shut down).
  • The jar was never installedsls dynamodb install didn't run or failed, so there's nothing to start.
  • A path/permissions problem with the install directory.
  • Apple Silicon / arch mismatch with an old jar that bundles native SQLite libs.

Download failures

When npx serverless dynamodb install or the Maven plugin download fails (network proxy, corporate TLS inspection, or a full disk), the start command finds no jar and exits with the same generic Unable to start DynamoDB Local process! wrapper — check the plugin log for ENOENT or HTTP errors before chasing Java.

How to fix it

  1. Install/verify Java 17+: java -version. If missing or too old, install a current JDK/JRE (e.g. Temurin or Corretto 17+).
  2. Re-install DynamoDB Local:
    npx serverless dynamodb install
  3. Free the port (or change it): find what's on 8000 and stop it —
    lsof -i :8000   # then kill the PID, or configure a different port
  4. Use the official Docker image to sidestep Java/arch issues entirely:
    docker run -p 8000:8000 amazon/dynamodb-local
    Docker bundles a compatible JRE — no local Java install required.
  5. Point your client at it with a placeholder region + endpoint (see Missing region in config).

Connect from DynoTable

If Java/arch or a failed jar download blocks Local, run the official Docker image and connect DynoTable without a local JRE (Install DynoTable). In Settings → Profiles → Add Profile, set endpoint http://localhost:8000, pick a placeholder region, and use alphanumeric dummy credentials — then Test Connection. That path avoids the Unable to start DynamoDB Local process! spawn failure entirely. Walkthrough: Running DynamoDB Local. If the plugin never downloaded the jar, re-run npx serverless dynamodb install and confirm the install directory is writable — permission errors surface as the same generic spawn message with no Java stack trace. After Local is up, load fixtures with the DynamoDB JSON converter.

References

Last verified 2026-07-13 against the official AWS documentation linked above.

Work with DynamoDB without the Console

A fast DynamoDB desktop client that runs the real SQL DynamoDB can’t — JOINs, GROUP BY, aggregates — with visual editing and an AI agent on your own Bedrock keys.

Free 30-day trial, no credit card — then the Free plan with no time limit.