Packages in CI
Running tricky packages (native builds, browsers, GPUs) in CI.
How to install and run dependencies that are painful in CI - native-build npm modules, browser automation, ML libraries, and database tooling - without flaky failures.
Node native modules
sharp, node-gyp, bcrypt, canvas.
"403 Forbidden" on Artifactory deployFix Artifactory "403 Forbidden" when deploying an artifact in CI - the token authenticated but the user lacks…
"404 ... repository ... not found"Fix Artifactory "404 not found" for a repository in CI - the repo key in the upload or download path does not…
"404" repository not found (Artifactory)Fix Artifactory "404 Not Found" for a repository in CI - the registry URL points at a repository key that doe…
"409 Conflict" overwriting a releaseFix Artifactory "409 Conflict" when deploying to a release repository in CI - the repo forbids overwriting an…
"409 Conflict" (immutable)Fix Artifactory "409 Conflict" in CI - a release repo blocks overwriting an existing artifact, so republishin…
"413 Request Entity Too Large"Fix Artifactory "413 Request Entity Too Large" in CI - a reverse proxy or Artifactory upload limit rejected a…
"build info ... not found"Fix Artifactory "build info not found" in CI - a promote, scan, or download-by-build step referenced a build…
"checksum ... does not match"Fix Artifactory "checksum does not match" in CI - the client-declared SHA-256 differs from the bytes Artifact…
"repository ... is not configured for"Fix Artifactory "the repository is not configured for" a package type in CI - an npm/Maven/pip/Docker request…
"storage quota exceeded"Fix Artifactory "storage quota exceeded" in CI - the deploy was blocked because the instance or repo reached…
Docker "denied" (Artifactory)Fix Docker "denied: requested access to the resource is denied" against an Artifactory registry in CI - docke…
Maven "401 Unauthorized" (Artifactory)Fix Maven "status code 401" against Artifactory in CI - settings.xml has no matching <server> credentials for…
npm "401 Unauthorized" (Artifactory)Fix npm "401 Unauthorized" against an Artifactory registry in CI - the .npmrc registry line has no _auth/_aut…
"401 Unauthorized" from Artifactory npmFix npm "401 Unauthorized" against a JFrog Artifactory npm registry in CI - the request reached Artifactory b…
pip "401" (Artifactory index)Fix pip "401 Client Error" against an Artifactory PyPI index in CI - the index-url has no token, or the crede…
"Storage quota" exceeded (Artifactory)Fix Artifactory uploads failing because the storage quota is exceeded in CI - Artifactory blocks new deploys…
virtual vs remote vs local repoFix Artifactory virtual/remote/local repo confusion in CI - deploying to a virtual or remote repo, or resolvi…
"a verified email address is required to publish"Fix cargo "error: api errors ... A verified email address is required to publish crates to crates.io" in CI -…
"crate version ... is already uploaded"Fix cargo "error: failed to publish ... crate version X.Y.Z is already uploaded" in CI - crates.io versions a…
"no token found, please run `cargo login`"Fix cargo "error: no token found, please run `cargo login` or pass `--token`" in CI - no crates.io token is c…
"requested access ... is denied"Fix Docker "denied: requested access to the resource is denied" pushing to a private registry in CI - the log…
"401 (Unauthorized)" on pushFix "dotnet nuget push" 401 Unauthorized in CI - the API key is missing, wrong, or expired, or the feed needs…
"409 ... package version already exists"Fix "dotnet nuget push" 409 Conflict in CI - the package version already exists on the feed; bump the version…
"Access Denied. Please sign up for an account"Fix RubyGems "gem push" 401 authentication failures in CI - no valid API key reached rubygems.org; set GEM_HO…
"Repushing of gem versions is not allowed"Fix RubyGems "Repushing of gem versions is not allowed" in CI - the version already exists on rubygems.org an…
"404 Not Found" @scope (GitHub Packages)Fix GitHub Packages "npm error 404 Not Found" for a scoped package in CI - the scope is not mapped to npm.pkg…
"permission_denied: write_package"Fix GitHub Packages "permission_denied: write_package" in CI - the GITHUB_TOKEN job lacks packages: write, or…
"401 Unauthorized" GitHub Packages MavenFix GitHub Packages Maven "status code 401" in CI - settings.xml has no server credentials for the github ser…
"npm error 401" from GitHub PackagesFix GitHub Packages npm "401 Unauthorized" in CI - the token lacks the read:packages scope, or .npmrc is not…
"missing go.sum entry" / proxy 410 GoneFix Go module errors after tagging in CI - "missing go.sum entry; to add it run go mod download" and proxy.go…
"unauthorized: authentication required"Fix Harbor "unauthorized: authentication required" when pushing an image in CI - the docker client is not log…
Install better-sqlite3 in CIInstall better-sqlite3 reliably in CI: use prebuilt binaries, add Python and a compiler for source builds, an…
Install protobufjs in CIInstall protobufjs in CI: it is pure JS, but its postinstall and pbjs/pbts CLIs need an unblocked install - a…
Install ws addons in CIInstall the ws WebSocket optional addons in CI: bufferutil and utf-8-validate compile via node-gyp - add a to…
jf "401 Unauthorized"Fix JFrog "401 Unauthorized" in CI - the jf CLI reached Artifactory but sent no valid credential because JF_A…
jf "403 Forbidden"Fix JFrog "403 Forbidden" in CI - the token authenticated but the principal lacks deploy or read permission o…
"access token expired"Fix JFrog "access token expired" in CI - the JF_ACCESS_TOKEN passed its expiry, so every authenticated jf cal…
jf "connection refused"Fix jf "connection refused" or "no such host" in CI - JF_URL points at the wrong host, port, or scheme, or om…
"jf rt build-publish ... failed"Fix "jf rt build-publish failed" in CI - the build info could not be published because no build parts were co…
"jf: command not found"Fix "jf: command not found" in CI - the JFrog CLI is not installed on the runner because the setup-jfrog-cli…
"requires a valid ... license"Fix JFrog "requires a valid license" in CI - a jf command used a feature (Xray, build promotion, distribution…
"Server ID ... does not exist"Fix JFrog "Server ID does not exist" in CI - a jf command referenced a named server that was never configured…
"not authorized to deploy"Fix Artifactory "You are not authorized to deploy artifacts" in CI - the token authenticated but the deploy p…
"context path" 404 (reverse proxy)Fix JFrog reverse-proxy 404s in CI - JF_URL omits or duplicates the /artifactory context path, so API request…
Xray "scan ... failed"Fix JFrog Xray "scan failed" in CI - the jf scan or build-scan could not complete because the index was incom…
Xray "violations found"Fix JFrog Xray "violations found" failing a CI gate - a security or license policy watch flagged the build an…
"Missing signature for file"Fix Maven Central "Missing signature for file" / unsigned artifact errors in CI - Central requires every arti…
"Missing: ... javadoc.jar / sources.jar"Fix Maven Central validation failures for missing javadoc and sources jars in CI - Central requires -sources.…
"status: 401 Unauthorized"Fix Maven "Failed to deploy artifacts ... status: 401 Unauthorized" to Central in CI - the server credentials…
"Repository does not allow updating assets"Fix Nexus "status code 400 ... Repository does not allow updating assets" on deploy in CI - a release repo fo…
"401 Unauthorized" from NexusFix Sonatype Nexus "Received status code 401 ... Unauthorized" on deploy in CI - the server settings credenti…
"403 Forbidden" Nexus npm publishFix npm "403 Forbidden" publishing to a Sonatype Nexus npm hosted repo in CI - the authenticated user lacks t…
Nexus proxy "remote fetch failed"Fix Nexus proxy repositories returning 404/failed for packages that exist upstream in CI - the proxy could no…
"E401 ... no auth token"Fix npm "E401 Unauthorized ... no auth token" against a private registry in CI - .npmrc has no _authToken lin…
"Provenance generation ... failed"Fix npm publish --provenance failures in CI - provenance needs an OIDC id-token, so the workflow must grant i…
"402 Payment Required"Fix "npm ERR! code E402 ... 402 Payment Required" in CI - publishing a scoped package as private requires a p…
"403 Forbidden - PUT ... permission to publish"Fix "npm ERR! 403 Forbidden - PUT https://registry.npmjs.org/<pkg> - You do not have permission to publish" i…
"cannot publish over previously published version"Fix "npm ERR! code E409 ... You cannot publish over the previously published versions" in CI - the version in…
"ENEEDAUTH - This command requires you to be logged in"Fix "npm ERR! code ENEEDAUTH ... This command requires you to be logged in" in CI - no auth token reached the…
"This operation requires a one-time password"Fix "npm ERR! code EOTP ... This operation requires a one-time password" in CI - 2FA is set to require an OTP…
"401 Unauthorized" (OSSRH deploy)Fix OSSRH/Sonatype "status code 401 Unauthorized" on deploy in CI - settings.xml lacks the ossrh server crede…
"Missing Signature" (OSSRH gpg)Fix OSSRH staging "Missing Signature" failures in CI - Maven Central requires a .asc GPG signature for every…
OSSRH "staging rules failure"Fix OSSRH "Failed: ... staging rules failure" when closing a staging repository in CI - required metadata lik…
"valid token, but no corresponding ... trusted publisher"Fix PyPI trusted publishing OIDC errors in CI - the workflow exchanged an OIDC token but PyPI found no matchi…
"`long_description` has syntax errors"Fix twine check "warning: `long_description` has syntax errors in markup and would not be rendered on PyPI" i…
"File already exists"Fix twine "HTTPError: 400 Bad Request ... File already exists" in CI - PyPI does not allow overwriting a rele…
"403 Forbidden ... invalid or non-existent authentication"Fix twine "HTTPError: 403 Forbidden ... Invalid or non-existent authentication information" in CI - PyPI reje…
"not allowed to publish" (Verdaccio)Fix Verdaccio "403 ... user is not allowed to publish this package" in CI - the authenticated user is not per…
Browsers & E2E
Puppeteer, Playwright, Cypress.
Data, ML & DB
Prisma, TensorFlow, OpenCV, psycopg2.
"401 Unauthorized" from devpiFix pip 401 from a devpi private index in CI - the extra-index-url has no credentials or the devpi user token…
librosa/soundfile in CIInstall librosa and soundfile in CI: soundfile needs the libsndfile system library, so add libsndfile1, plus…
MoviePy in CIInstall MoviePy in CI: it needs the ffmpeg binary for video and ImageMagick for text/captions - add both via…
mysqlclient in CIInstall mysqlclient in CI without "Cannot find mysql_config" - add default-libmysqlclient-dev + pkg-config +…
Installing psycopg2 in CIInstall psycopg2 in CI: use psycopg2-binary or add libpq-dev for a source build, connect to a Postgres servic…
cryptography in CIInstall the Python cryptography package in CI without a Rust/OpenSSL build - keep the prebuilt wheel, or add…
WeasyPrint in CIInstall WeasyPrint in CI: the pip package needs the Pango, Cairo, GDK-PixBuf, and HarfBuzz system libraries -…
Using PySpark in CIRun PySpark in CI: install a matching JDK, set JAVA_HOME, run a local Spark session, cache pip, and fix "JAVA…
"409 File already exists"Fix twine "HTTPError: 409 Conflict ... File already exists" against a private pypiserver in CI - the same ver…
"403 Forbidden" from twine uploadFix twine "HTTPError: 403 Forbidden" uploading to a private PyPI index in CI - the credentials are missing or…
Explore other topics
GitHub ActionsWorkflow, runner, and YAML errors - diagnosed and fixed.
Node.js & npmnpm, yarn, and pnpm failures in CI - solved.
DockerBuild, run, compose, and registry errors - explained.
Pythonpip, poetry, venv, and pytest failures - fixed.
Java & JVMMaven, Gradle, and JVM failures in CI - resolved.
GoGo build, module, and test failures - diagnosed.