Skip to content

[BUG] Forbidden 403 errors on specific package versions #1294

Closed
@dindurthy

Description

@dindurthy

What / Why

We have been seeing Forbidden 403 errors on specific versions of several private packages. The problem versions appear to have successfully published, but we can't npm install them.

When

I was able to reproduce a package version that works and a package version that errors, but I have no idea how to do so reproducibly. As far as I can tell, I published both package versions exactly the same way. We've only seen this with pre-release versions -- just an observation.

Where

One affected package is @redoxengine/rid

Here are npm views for the version that works and the version that doesn't. Same .npmrc file is used for both. It's the same package, just different versions, so I don't think scope would come into play. I ran npm cache clean --force before this:

# Package version that encounters an error:
$ npm install @redoxengine/rid@0.0.7-rid-test.0
npm ERR! code E403
npm ERR! 403 403 Forbidden - GET https://registry.npmjs.org/@redoxengine/rid/-/rid-0.0.7-rid-test.0.tgz
npm ERR! 403 In most cases, you or one of your dependencies are requesting
npm ERR! 403 a package version that is forbidden by your security policy.

npm ERR! A complete log of this run can be found in:
npm ERR!     /Users/dindurthy/.npm/_logs/2020-05-11T17_53_22_926Z-debug.log

$ npm view @redoxengine/rid@0.0.7-rid-test.0

@redoxengine/rid@0.0.7-rid-test.0 | UNLICENSED | deps: 19 | versions: 57
Shared R^ID Logic
https://github.com/100health/redox-services/libraries/rid/

dist
.tarball: https://registry.npmjs.org/@redoxengine/rid/-/rid-0.0.7-rid-test.0.tgz
.shasum: 732d778708f56aad888f8b1aa3b0c588236b1e68
.integrity: sha512-TGkYW32ye2A2WxxhCdlWxehTaJhiJX+eMiGxZO2WHOv+2eggtkbUBOG/ZmLRqra6qAbS5DWeWB6hvLgdvyqJ2A==
.unpackedSize: 1.1 MB

dependencies:
@redoxengine/claims-validation: ^8.0.210              fp-ts: ^2.5.3
@redoxengine/dc-kafka-client: ^8.0.224                graphile-worker: ^0.4.0
@redoxengine/express-request-authentication: ^8.0.301 io-ts: ^2.1.2
@redoxengine/express-request-authorization: ^8.0.301  kafkajs: ^1.12.0
@redoxengine/express-request-logger: 0.0.16           knex: ^0.20.8
@redoxengine/reaper: ^1.1.2                           luxon: ^1.22.0
@redoxengine/structured-logger: ^8.0.283              objection: ^2.1.2
axios: ^0.19.2                                        pg: ^7.18.1
csv-parse: ^4.8.7                                     uuid: ^3.4.0
express: ^4.17.1

maintainers:
***


dist-tags:
canary: 0.0.8-rid53.0  latest: 0.0.14

published a week ago by redox-cicd
# Package version that works
$ npm install @redoxengine/rid@0.0.7-cicd-testing.0
npm WARN deprecated @types/chokidar@2.1.3: This is a stub types definition. chokidar provides its own type definitions, so you do not need this installed.
npm WARN deprecated resolve-url@0.2.1: https://github.com/lydell/resolve-url#deprecated
npm WARN deprecated urix@0.1.0: Please see https://github.com/lydell/urix#deprecated
npm WARN cicd-test@1.0.0 No license field.

+ @redoxengine/rid@0.0.7-cicd-testing.0
added 284 packages from 266 contributors, removed 108 packages, updated 23 packages, moved 6 packages and audited 3249 packages in 22.581s

3 packages are looking for funding
  run `npm fund` for details

found 60 vulnerabilities (33 low, 3 moderate, 24 high)
  run `npm audit fix` to fix them, or `npm audit` for details

$ npm view @redoxengine/rid@0.0.7-cicd-testing.0

@redoxengine/rid@0.0.7-cicd-testing.0 | UNLICENSED | deps: 19 | versions: 57
Shared R^ID Logic
https://github.com/100health/redox-services/libraries/rid/

dist
.tarball: https://registry.npmjs.org/@redoxengine/rid/-/rid-0.0.7-cicd-testing.0.tgz
.shasum: ded07976eecce69a44c81032bad7a11384820d9d
.integrity: sha512-BNXkHKteWbUFtpK63Rp14c1LwV/w1trrOfk0fYaR12ziW1PdnzfoVFMZz6+9FNZO6ceCKgvKh1/D5H95bC9dBA==
.unpackedSize: 1.1 MB

dependencies:
@redoxengine/claims-validation: ^8.0.210              fp-ts: ^2.5.3
@redoxengine/dc-kafka-client: ^8.0.224                graphile-worker: ^0.4.0
@redoxengine/express-request-authentication: ^8.0.301 io-ts: ^2.1.2
@redoxengine/express-request-authorization: ^8.0.301  kafkajs: ^1.12.0
@redoxengine/express-request-logger: 0.0.16           knex: ^0.20.8
@redoxengine/reaper: ^1.1.2                           luxon: ^1.22.0
@redoxengine/structured-logger: ^8.0.283              objection: ^2.1.2
axios: ^0.19.2                                        pg: ^7.18.1
csv-parse: ^4.8.7                                     uuid: ^3.4.0
express: ^4.17.1

maintainers:
***

dist-tags:
canary: 0.0.8-rid53.0  latest: 0.0.14

published a week ago by redox-cicd
dindurthy:~/RedoxDev/redox-services/services/cicd-test $ cat .npmrc
//registry.npmjs.org/:_authToken=***

How

Current Behavior

Some versions of @redoxengine/rid encounter 403 errors when installing.

Steps to Reproduce

npm version prerelease --preid "some-prerelease-id"
npm publish --tag canary
npm install @redoxengine/rid@<new published version>

Except this only sometimes results in 403s.

Expected Behavior

npm install installs the prerelease version successfully.

Metadata

Metadata

Assignees

No one assigned

    Labels

    Bugthing that needs fixing

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions