Troubleshooting
The errors that actually show up most often, and how to fix each one.
This page covers the failures people run into most in practice, in roughly the order you're likely to hit them.
readiness timeout exceeded
The container built and started, but never became healthy within the readiness window. Usual causes:
- Your app doesn't bind to the port DockHosting expects — read it from the
PORTenvironment variable and bind to0.0.0.0, not127.0.0.1 - Your app is slow to start (a large dependency tree to load, a slow database migration on boot) and needs more than the default window
- Your app crashes shortly after starting, and keeps getting restarted — check
dock logs --followfor a stack trace right after startup
Root directory not found (e.g. a specific .js file, or a folder name)
The build looked for your entry point at a path that doesn't exist. This is almost always a root directory mismatch — your package.json (or composer.json, or Dockerfile) lives in a subfolder (backend/, server/, api/), but the project's configured root directory is still the repository root.
Fix: open your project's settings and set Root directory to the folder that actually contains your build file. See the root-directory note in the Node.js guide for more detail.
COPY failed: file not found in build context or excluded by .dockerignore
A Dockerfile COPY instruction references a file that isn't where the build expects it — either the path is wrong relative to the build context, or .dockerignore is excluding something you actually need. See the full breakdown in the Docker guide.
failed to join private network: all predefined address pools have been fully subnetted
This is a platform-side capacity error, not something in your code or config — it means the host temporarily ran out of internal network address space. If you see this, contact support rather than trying to work around it; it isn't fixable from your project's settings.
Build interrupted by a platform restart. Please redeploy.
Exactly what it says — the platform restarted while your build was running, for maintenance or a deploy of its own. Nothing wrong on your end. Just run dock deploy again.
pull access denied for <image>, repository does not exist
Your Dockerfile's base image is either misspelled or private. Public images (node:20-slim, php:8.3-fpm) work without any setup; a private image needs registry credentials configured for the project first.
composer install fails during the build
Covered in detail in the Laravel guide — usually a missing PHP extension declaration, a private-repository credential, or a composer.lock out of sync with composer.json.
COPY failed: no source files were specified
A COPY instruction's source argument resolved to nothing — commonly from a build argument or variable substitution that ended up empty. Check any ARG-driven COPY lines in your Dockerfile.
MissingAppKeyException (Laravel)
APP_KEY isn't set. Generate one with php artisan key:generate --show locally and add the base64:... value as an environment variable — see Deploying → Laravel.
Still stuck?
Open a ticket at support.dockhosting.dev with your project name and, if you have one, the exact error text from dock logs. A person who can read the actual build log replies — not a bot, not a form.