Daniel Serodio
Daniel Serodio

Reputation: 4506

Artifactory: Cannot find the npm repository index at 'npmjs'

I'm using Artifactory Pro 4.12.1. I created a local npm repository called npmjs-local, a remote npm repository called npmjs-remote, and a virtual npm repository called npmjs, aggregating the former two repos.

Then I configured npm to use Artifactory as the registry, using:

$ npm config set registry http://artifactory.example.org/artifactory/api/npm/npmjs

When I try to search for a package using npm search foo, I get the following error:

npm WARN Building the local index for the first time, please be patient
npm ERR! registry error parsing json
npm ERR! Darwin 15.6.0
npm ERR! argv "/usr/local/Cellar/node/7.2.0/bin/node" "/usr/local/bin/npm" "search" "foo"
npm ERR! node v7.2.0
npm ERR! npm  v3.10.9

npm ERR! Unexpected token C in JSON at position 0
npm ERR! Cannot find the npm repository index at 'npmjs'
npm ERR!
npm ERR! If you need help, you may report this error at:
npm ERR!     <https://github.com/npm/npm/issues>

npm ERR! Please include the following file with any support request:
npm ERR!     /Users/dserodio/npm-debug.log

I ran the same search using --loglevel verbose, and I saw that the "invalid JSON" is coming from http://artifactory.example.org/artifactory/api/npm/npmjs/-/all:

Cannot find the npm repository index at 'npmjs'

Edit: This happens both thru the Nginx proxy and directly to Artifactory. This is the full HTTP response:

$ curl -v http://artifactory.example.org:8081/artifactory/api/npm/npmjs/-/all
*   Trying 10.1.2.3...
* Connected to artifactory.example.org (10.1.2.3) port 8081 (#0)
> GET /artifactory/api/npm/npmjs/-/all HTTP/1.1
> Host: artifactory.example.org:8081
> User-Agent: curl/7.43.0
> Accept: */*
>
< HTTP/1.1 404 Not Found
< Server: Artifactory/4.12.1
< X-Artifactory-Id: b0f4dd7e3f5106cd:-3efe7253:158c0a36030:-7ffd
< Content-Type: application/json
< Transfer-Encoding: chunked
< Date: Tue, 06 Dec 2016 16:35:01 GMT
<
* Connection #0 to host artifactory.example.org left intact
Cannot find the npm repository index at 'npmjs'

What could be causing this error?

Upvotes: 2

Views: 942

Answers (1)

Dror Bereznitsky
Dror Bereznitsky

Reputation: 20376

This can happen if the NPM index for the virtual repository was never generated.

The best to solve the problem is to reindex the repository, this can be done using the REST API:

curl -uadmin:password -XPOST http://artifactory.example.org:8081/artifactory/api/npm/npmjs/reindex

The REST call will trigger an async indexing process which can be monitored using the Artifactory log file. You should see messages such as:

2016-12-07 13:11:02,455 [http-nio-8081-exec-5] [INFO ] (o.a.a.n.r.NpmRequestHelper:124) - Recalculating index for npm repository npmjs scheduled to run
2016-12-07 13:12:02,527 [art-exec-102209] [INFO ] (o.a.a.n.NpmServiceImpl:237) - Npm metadata recalculation has been started for repository 'npmjs'
2016-12-07 13:13:31,071 [art-exec-102209] [INFO ] (o.a.a.n.NpmServiceImpl:263) - Finished npm metadata recalculation for repo 'npmjs' in 1.48 minutes

Upvotes: 2

Related Questions