Cannot connect to the Docker daemon at unix:///var/run/docker.sock. Is the docker daemon running?
The Docker CLI cannot reach the Docker daemon, usually because the engine is stopped, the context is wrong, or the socket is unavailable.
Practical troubleshooting guides for npm, pip, Maven, and Docker errors.
The Docker CLI cannot reach the Docker daemon, usually because the engine is stopped, the context is wrong, or the socket is unavailable.
Docker cannot reach the registry host at the network level because the route is missing, blocked, or the destination is unreachable.
Docker cannot access /var/run/docker.sock because your user lacks permission to the daemon socket or the socket ownership is wrong.
Docker denied access because the repository path is wrong, the image is private, or the provided credentials do not have permission.
Docker reached the target host, but the TCP connection to the registry was refused, usually because nothing is listening or a firewall blocked it.
Docker started the container, but the configured command or entrypoint was not found in the image PATH or at the specified path.
The container entrypoint exists, but Docker cannot execute it because the file lacks execute permissions or the mount blocks execution.
Docker could not find the referenced container, image, network, or volume ID, usually because it was deleted, mistyped, or belongs to another context.
Docker rejected the image name because the reference format is invalid, commonly due to uppercase letters, bad tagging, or malformed syntax.
Docker rejected the image reference because repository names must be lowercase, so uppercase letters or malformed syntax made it invalid.
Docker hit an i/o timeout while contacting the registry, usually because of DNS, proxy, firewall, or slow network connectivity.
Docker could not find the requested manifest for that image tag, which usually means the tag does not exist or the registry metadata is out of date.
Docker found the image tag, but no manifest matches your OS or CPU architecture, so the image is not built for your platform.
Docker cannot find that image locally, so the image ID or tag is wrong, was removed, or was never pulled onto this machine.
Docker cannot push the image because the tag does not exist locally, so you need to tag the image correctly before pushing.
Docker reached the registry, but the registry returned HTTP 503 Service Unavailable, usually due to outage, overload, or proxy issues.
Docker cannot pull from that repository because the name is wrong, the repository does not exist, or your account lacks access.
Docker timed out while waiting for the registry response, which usually points to slow network links, proxy issues, or an overloaded registry.
Docker Hub rejected the pull because you hit its rate limit, often fixed by authenticating, waiting, or using a cached mirror.
Docker cannot remove the container filesystem because the device is busy, usually due to running processes, mounts, or lingering references.
Docker registry authentication failed because no valid credentials were sent, so you need to log in or fix the token used for that registry.
Docker login failed because the registry rejected the username or password, so the stored credentials or access token are wrong.
Docker cannot remove the volume because a running or stopped container still references it, so you must detach or delete the dependent container first.
npm rejected the HTTPS connection because the registry or proxy certificate is expired, so the TLS handshake can no longer be trusted.
npm rejected the HTTPS certificate because the registry or proxy certificate has been revoked and is no longer trusted.
npm rejected the registry TLS certificate because the certificate chain signature could not be verified by your local trust store.
npm does not trust the registry certificate chain, usually because of a missing internal CA, corporate proxy, or intercepted HTTPS traffic.
npm received a self-signed certificate at the top of the TLS chain, usually from a private registry or HTTPS-inspecting proxy.
npm received a 401 Unauthorized response from the registry because your token, password, or .npmrc authentication settings are missing or invalid.
npm was authenticated, but the registry returned 403 Forbidden because your account lacks permission for that package, scope, or action.
npm returned 404 because the package, version, scope, or registry URL does not exist at the registry you are using.
npm received HTTP 409 Conflict because that package version already exists or the registry state conflicts with the publish request.
npm received HTTP 422 because the publish payload was semantically invalid, such as bad metadata, malformed tarball data, or invalid package state.
npm hit EACCES because the current user does not have permission to read, write, or execute one of the required files or directories.
npm could not resolve the registry hostname because DNS returned EAI_AGAIN, a temporary lookup failure that usually clears on retry.
npm returned EBADENGINE because the package requires a different Node.js or npm version than the one running your install.
npm skipped or rejected the package because it does not support your current operating system or CPU architecture.
npm hit EBUSY because a file or directory was locked or still in use by another process, editor, antivirus tool, or sync service.
npm aborted the network request before completion, often because the remote server closed the connection or a proxy interrupted it.
npm reached the registry host, but the TCP connection was refused, usually because the server, proxy, or mirror is not accepting connections.
npm lost the network connection because the peer reset the TCP session mid-request, often due to proxies, firewalls, or flaky networks.
npm hit EEXIST because it tried to create a file or directory that already exists where npm expected to create a new one.
npm downloaded a package tarball whose checksum did not match the expected integrity value (lockfile/metadata mismatch).
npm rejected the package name because it does not follow npm naming rules, such as invalid characters, uppercase letters, or reserved names.
npm rejected the dist-tag because the tag name is invalid, reserved, or formatted in a way that conflicts with version parsing.
npm rejected the version because the semver string is invalid or malformed in package metadata, tags, or your command.
npm hit EISDIR because it expected a file path, but the target resolved to a directory instead, so npm could not read or write it correctly.
npm could not parse package.json because the JSON is invalid, such as trailing commas, mismatched quotes, or broken syntax.
npm returned ELIFECYCLE because a package lifecycle script like install, test, or build exited with a non-zero status.
npm returned ELOCKVERIFY because the lockfile and installed dependency tree do not agree with what npm expected to verify.
npm ls reported ELSPROBLEMS because the installed dependency tree contains missing, invalid, or extraneous packages.
npm hit EMFILE because the process opened too many files at once and exceeded the per-process file descriptor limit.
npm hit ENAMETOOLONG because the generated file path exceeded your operating system path length limit during install or extract.
npm requires authentication for this registry or package, so you must log in or configure a valid auth token in .npmrc.
npm hit ENFILE because the whole system reached its open-file limit, so new files or sockets could not be opened.
npm hit ENOENT because a required file or directory was missing, often package.json, a lockfile path, or an extracted dependency.
npm returned ENOSELF because the package name matches the project you are trying to install, creating a self-dependency.
npm hit ENOSPC because the disk ran out of free space while extracting packages, writing cache data, or updating node_modules.
npm hit ENOTDIR because it expected a directory in the path, but a file exists there instead, breaking the package or cache lookup.
npm hit ENOTEMPTY because it tried to replace or remove a directory that still contains files, often during install, cleanup, or rename steps.
npm could not resolve the registry hostname, so DNS lookup failed before npm could connect to the package registry.
npm requires a one-time password for this publish or settings change because two-factor authentication is enabled on the account.
npm hit EPERM because the operating system denied the filesystem operation, commonly due to permissions, locks, antivirus, or Windows file handling.
npm hit EPIPE because it tried to write output to a closed pipe or terminated process, often in CI logs or shell pipelines.
npm could not publish because that package version already exists in the registry, so you need a new version before publishing again.
npm failed with ERESOLVE because it could not build a dependency tree that satisfies the requested versions and peer dependency constraints.
npm hit EROFS because it tried to write cache or package files on a read-only filesystem, mount, or container layer.
npm hit a socket timeout while waiting for registry network I/O, usually because of slow connections, proxies, or an overloaded registry.
npm returned ETARGET because no published version matches the version range or dist-tag requested in your install command.
npm timed out while talking to the registry or downloading a package tarball, usually because of slow networks, proxies, or registry issues.
npm returned EUSAGE because the command, flags, or configuration were invalid for that operation, so npm stopped before doing any work.
npm connected over HTTPS, but the certificate presented by the server does not match the registry hostname you requested.
npm rejected the TLS connection because a self-signed certificate appeared somewhere in the certificate chain to the registry.
npm could not build a trusted TLS chain because the issuer certificate for the registry was missing or unavailable.
npm could not verify the registry TLS chain because the issuer certificate is missing from the local machine trust store.
npm could not verify the registry TLS certificate because the leaf certificate chain is incomplete or the required issuer is missing locally.
Maven could not resolve one or more project dependencies, usually because of missing artifacts, bad repository settings, or network access problems.
Maven could not download or parse the POM for a dependency/plugin, so it cannot resolve that artifact's transitive dependencies.
Maven could not find an artifact in the configured repositories, and the missing result may be cached in the local repository.
Maven cannot resolve the `<parent>` POM for your project from the local filesystem or configured repositories.
You ran a Maven goal that needs a `pom.xml`, but Maven cannot find one in the current directory (or via `-f`).
Maven could not transfer the artifact from the repository, usually because of network failures, proxy issues, TLS problems, or bad credentials.
The JVM running Maven cannot validate the HTTPS certificate chain of the repository, so Maven refuses the connection.
The repository requires authentication, but Maven did not send valid credentials for the repository `<id>` being used.
The repository rejected the request (403). Your credentials may be valid, but you are not authorized for that repository/path or operation.
Maven is using an HTTP proxy to reach repositories, but the proxy requires authentication and Maven is not configured with valid proxy credentials.
Maven cannot map that plugin prefix to a real plugin artifact, usually because the plugin is undeclared or missing from configured plugin repositories.
Maven could not resolve the plugin or one of its dependencies, usually because plugin repositories, credentials, or network access are wrong.
Maven cannot write to the local repository directory (`~/.m2/repository` by default), usually due to permissions or a read-only filesystem.
Maven downloaded the artifact, but checksum verification failed, usually because the file is corrupted or a repository or proxy served different bytes.
Maven 3.8.1 and newer refuse insecure HTTP repository URLs and route them through the built-in `maven-default-http-blocker` mirror.
Maven located a JAR coordinate, but could not download the corresponding POM, so it cannot determine transitive dependencies or metadata for that artifact.
The machine running Maven could not resolve the repository hostname via DNS, so Maven cannot download artifacts or metadata.
The JVM running Maven could not complete the TLS handshake with the repository, so Maven cannot download artifacts over HTTPS.
Maven is running with offline mode enabled (`-o` / `--offline`), so it will not contact remote repositories to download missing artifacts.
Your shell can't find a `pip` executable on `PATH` (or you're using an environment where `pip` is intentionally not installed).
Windows cannot find the pip command because Python or its Scripts directory is missing from PATH, or pip was not installed correctly.
Your OS Python is marked as "externally managed" (PEP 668), so pip refuses to modify the system environment outside a virtual environment.
Python cannot import pip because pip is not installed in that interpreter, the environment is broken, or you are using the wrong Python executable.
pip does not have `update` or `upgrade` subcommands. Upgrading packages is done with `pip install --upgrade ...`.
pip install failed because no package, requirements file, wheel, or local path was provided, so pip had nothing to install.
You're running pip through an outdated entrypoint script. It still works today, but it can break after pip upgrades.
pip was asked to install from a requirements file path that does not exist (wrong filename, wrong directory, or missing checkout).
pip could not parse a requirement specifier (malformed version constraint, quotes/smart-quotes, comments, or an invalid line in a requirements file).
You asked pip to install from a local directory or sdist, but it doesn't contain standard Python packaging metadata (`pyproject.toml` or `setup.py`).
pip could not find any installable release that matches your requirement and your environment (Python version, OS/architecture, and index configuration).
The package (or one of its dependencies) declares a `Requires-Python` range that excludes the Python interpreter you're using.
pip found conflicting dependency constraints and could not choose a set of package versions that satisfies every requirement.
Your environment is already inconsistent. pip installed or upgraded something, but the full installed set now contains version conflicts.
pip delegated part of the install to an external build step (PEP 517 backend or legacy `setup.py`) and that subprocess failed.
pip attempted to build a wheel from a PEP 517 project, but the wheel build failed and pip cannot install it without a wheel.
pip is building a package from source, but your system is missing a required toolchain (C/C++ compiler, Python headers, MSVC Build Tools, or Rust).
pip tried to write into a directory you don't have permission to modify (often system site-packages or a protected install directory).
The machine ran out of disk space while pip was downloading/building/installing packages (often in the temp directory or cache).
pip detected that its cache directory is owned by a different user (often because pip was previously run with `sudo`), so it disables caching for safety.
Your Python was built or installed without SSL support, so pip cannot make HTTPS requests to package indexes like PyPI.
pip is repeatedly failing to reach the package index due to network timeouts, proxy issues, or TLS incompatibilities, and it is retrying until it gives up.
You are using hash-checking mode (`--require-hashes`), but the downloaded file's hash doesn't match, or some requirements are missing hashes.
pip cannot uninstall a package because it cannot find the installed-files manifest (`RECORD`) in the package metadata.
pip will not uninstall the package because distutils or OS packaging installed it without metadata that safely maps files to remove.
pip detected a corrupted or incompatible cache entry and ignored it. Installs may be slower or may fail if corruption is widespread.