Uploaded image for project: 'Artifactory Binary Repository'
  1. Artifactory Binary Repository
  2. RTFACT-17471

Artifactory 404 when trying to get NPM packages that are missing metadata on registry.npmjs.org on decoded slash url

    Details

    • Type: Improvement
    • Status: Open
    • Priority: Normal
    • Resolution: Unresolved
    • Affects Version/s: 6.3.3
    • Fix Version/s: None
    • Component/s: None
    • Labels:
      None

      Description

      UPDATE: NPMJS have fixed the metadata on their end, we tested all 5 known packages and they all seem to resolve properly. Fix would still be nice for checking both decoded and encoded when doing a HEAD request.

      We've tried to reach out to NPMJS directly with no success. More of an issue on NPMJS but since the NPM client doesn't (seem) to see this issue, perhaps its something we can fix on our end.

      We've (re)discovered a issue, with HEAD/GET requests, where 5 packages (that we know of) will 404 when Artifactory reaches out to get it's metadata from registry.npmjs.org:
      @babel/helper-builder-react-jsx
      @babel/plugin-syntax-jsx
      @apollographql/graphql-playground-html
      @reach/router
      @pm2/io

      e.g. trying to hit registry.npmjs.org/@pm2/io will fail (404). If we encode the last slash, to registry.npmjs.org/@pm2%2fio, then it loads properly. A working package will work with the decoded slash, e.g: registry.npmjs.org/@angular/core

      The packages all exist on NPMJS, artifactory only checks the decoded slash, perhaps we can have it check BOTH registry.npmjs.org/@pm2/io and registry.npmjs.org/@pm2%2fio?

      We currently have 2 workarounds:
      Add package to local
      Bypass HEAD requests

      NPM debug logs:
      pm2-io-2018-08-21T16_03_54_030Z-debug.log reach-router-2018-08-21T16_08_25_363Z-debug.log reach-router-install-failed.txt pm2-io-install-failed.txt angular-core-install-successful.txt

      Artifactory logs are just 404:
      20180906173933|295|REQUEST|127.0.0.1|admin|GET|/api/npm/npm/@reach%2frouter|HTTP/1.1|404|0

      2018-09-06 17:39:13,165 [art-exec-33] [INFO ] (o.a.a.g.i.GemsRemoteIndexHandler:63) - Finished updating remote repo index for gems-remote
      2018-09-06 17:39:32,021 [http-nio-8081-exec-8] [DEBUG] (o.j.r.n.r.h.NpmLocalRepoHandler:54) - Handling package metadata request for package 'npm'
      2018-09-06 17:39:32,268 [http-nio-8081-exec-8] [INFO ] (o.a.r.HttpRepo :415) - npm-remote downloading https://registry.npmjs.org/npm 7.72 MB
      2018-09-06 17:39:32,826 [http-nio-8081-exec-8] [INFO ] (o.a.r.HttpRepo :428) - npm-remote downloaded https://registry.npmjs.org/npm 7.72 MB at 14,196.83 KB/sec
      2018-09-06 17:39:32,843 [http-nio-8081-exec-3] [DEBUG] (o.j.r.n.r.h.NpmLocalRepoHandler:54) - Handling package metadata request for package '@reach/router'
      2018-09-06 17:39:33,203 [http-nio-8081-exec-8] [DEBUG] (o.a.a.n.r.m.NpmPackageMetadataMerger:144) - Skipping external dependencies check, config is empty

        Attachments

          Activity

            People

            • Assignee:
              Unassigned
              Reporter:
              loreny Loren Yeung
            • Votes:
              0 Vote for this issue
              Watchers:
              1 Start watching this issue

              Dates

              • Created:
                Updated: