Skip to content
NeuralRepo
Get Support

Troubleshooting

Start here when a command fails, returns the wrong thing, or does nothing at all.

The <id> argument is not the number you see

Section titled “The <id> argument is not the number you see”

Every listing prints ideas as #42. Every command takes an <id>. They are usually different numbers, because the display number is a counter per account while the ID is unique across the whole database. Only the first account created ever sees them line up.

Passing a display number therefore gives you one of two wrong answers:

Terminal window
nrepo log
# #42 exploring ⬡ Rewrite auth flow
nrepo show 42
# API error (404): Idea not found ← 42 is someone else's ID, or no one's
# ...or it prints a completely different idea of yours

Three reliable ways to get a real ID:

Terminal window
# 1. From --json, which carries both
nrepo log --limit 10 --json | jq -r '.[] | "\(.id)\t#\(.number)\t\(.title)"'
# 2. From the web app's URL — neuralrepo.com/ideas/391 → 391
# 3. From the command that created the idea
ID=$(nrepo push "New idea" --json | jq -r '.id')

The CLI’s own output mixes the two conventions, so read #N carefully:

Where#N means
nrepo log, search, show, status, duplicate listDisplay number
nrepo move --ids, nrepo tag add/remove, nrepo rm --jsonThe ID you passed
nrepo branch first lineSource ID, then the new idea’s number
nrepo duplicate listBoth are numbers; the detection ID is not shown at all

Every failure exits with status 1; success exits 0. Errors go to stderr, so they never contaminate a --json pipeline on stdout.

SituationHuman message--json code
Not logged inNot logged in. Run `nrepo login` to authenticate.auth_required
Key revoked or invalidAuthentication expired. Run `nrepo login` to re-authenticate.http_401
Feature needs ProThis feature requires a Pro plan. Upgrade at https://neuralrepo.com/settingshttp_403
Any other API failureAPI error (404): Idea not foundhttp_404
No network / DNS / TLSNetwork error: <detail>. Check your internet connection and try again.network_error
Anything elseRaw errorunknown

With --json, the error is one object on stderr:

{ "error": "Idea not found", "code": "http_404", "status": 404 }
Terminal window
if ! OUT=$(nrepo show 391 --json 2>err.json); then
jq -r '.code' err.json
fi

A few commands validate before calling the API and print a plain message with no code — an unparseable ID, an unknown status, an empty --ids list, or nrepo edit with neither --title nor --body (that one does carry "code": "no_input").

CommandFree-plan behaviour
nrepo link, nrepo unlink, nrepo link --batch403 — creating and deleting relations is Pro
nrepo key create403 — key creation is Pro
nrepo duplicate list / dismiss / mergeAlways empty: the duplicates endpoint returns no rows below Pro
nrepo searchWorks, but only 10 semantic searches a month; after that you get keyword results
nrepo pushWorks up to 50 active ideas, then 403 idea_limit_reached
Everything elseUnrestricted

nrepo login itself has no plan check, so the CLI is fully usable on the free plan — it is the individual features above that are gated. nrepo links (reading relations) is not gated either, so system-created connections stay visible.

nrepo move --ids, nrepo tag add, nrepo tag remove, and nrepo link --batch all process their input one entry at a time and report per-entry results. A failure in the middle does not roll back what came before.

OperationCap per callOn partial failure
move --ids, tag add/remove50 IDs/ per idea, then N moved, M errors
link --batch50 links/ per link, then N created, M errors

Check the counts, or .errors in --json, rather than the exit status — a batch where every entry failed still exits 0, because the request itself succeeded.

SymptomCause
nrepo tag with no arguments prints nothingThe bare form requires both an ID and at least one tag; with neither it exits 0 silently. Use nrepo tag --help.
nrepo search returns no results for words you know are thereSemantic search does not fall back to keyword in the CLI, and a just-captured idea has no embedding yet. See nrepo search.
nrepo links on a fresh branch shows nothingThe parent relation is created by the background queue a second or two later.
nrepo graph --depth 4 shows only three levelsThe text tree stops at the second hop. The deeper nodes are in --json.
nrepo duplicate list is always emptyDuplicate detection is Pro-only.
A merged idea vanished from nrepo logMerging archives the absorbed idea, and archived ideas are excluded from every listing.
SymptomWhat to do
Login timed out after 120 secondsThe local callback server closed. Re-run nrepo login rather than finishing the browser page.
Browser never opensThe URL is printed in the terminal — paste it manually.
No GitHub accountBrowser login is GitHub-only. Use nrepo login --api-key with a key from the dashboard (Pro).
Signed in, but every command says “Not logged in”Check that ~/.config/neuralrepo/config.json exists and contains an api_key; nrepo logout replaces the file with {}.
Commands work on your machine, not in CICI needs its own key: echo "$KEY" | nrepo login --api-key.

The weekly version check prints its notice to stderr, before the command’s own output, so nrepo log --json | jq . is unaffected. To silence it entirely — and skip the outbound call to the npm registry — set NREPO_NO_UPDATE_CHECK=1.