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 -versionfails, 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 installed —
sls dynamodb installdidn'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
- Install/verify Java 17+:
java -version. If missing or too old, install a current JDK/JRE (e.g. Temurin or Corretto 17+). - Re-install DynamoDB Local:
npx serverless dynamodb install - 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 - Use the official Docker image to sidestep Java/arch issues entirely:Docker bundles a compatible JRE — no local Java install required.
docker run -p 8000:8000 amazon/dynamodb-local - 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.
Related errors
- Could not connect to DynamoDB Local
- DynamoDB Local UnsupportedClassVersionError — the too-old-Java flavor of this failure.
- DynamoDB Local sqlite4java errors — the native-library/arch flavor.
- Missing region in config
- Learn: Running DynamoDB Local
References
- Deploying DynamoDB locally on your computer — AWS DynamoDB Developer Guide (JRE 17+ requirement for v2.6.0+, launch command, default port 8000)
- DynamoDB local usage notes — AWS DynamoDB Developer Guide (
-portand the other runtime options) - amazon/dynamodb-local — Docker Hub (official image;
docker run -p 8000:8000 amazon/dynamodb-local)
Last verified 2026-07-13 against the official AWS documentation linked above.