# Troubleshooting

Common problems and what to do about them.

## Can't sign in {#cant-sign-in}

### "Invalid email or password."

The same message appears for an unknown address and a wrong password — the form cannot tell you
which. Check that:

- The address is the one you signed up with, spelled the same way.
- Caps Lock is off.
- You are on the JARVIS sign-in page and not a SpaceKeep one. The two accounts are separate.

If you signed up with Google or GitHub, use that button instead of a password — or
[set a password](/jarvis/account/password/).

### Too many attempts

Repeated sign-in attempts from one address are temporarily throttled. Wait a minute before trying
again. Repeated immediate retries extend the wait.

### Social sign-in isn't configured yet

That provider is not available on this deployment. Use email and password — it works regardless.

### That sign-in link expired or was already used

The redirect back from the provider took too long, or the tab was reopened. Start the sign-in again
from scratch.

### You cancelled the sign-in with the provider

The provider's screen was dismissed. Nothing was wrong — try again when you are ready.

### The provider didn't share a verified email address

JARVIS can only link an account when the provider shares a **verified** address. Add or verify an
email at Google or GitHub, then try again. Alternatively, create an account with a password.

### Signed out unexpectedly

Sessions last 30 days. Changing your password also ends every session on every device — if you did
not change it, sign in again and consider [changing it](/jarvis/account/password/) as a precaution.

## Search isn't available {#search-problems}

### "Search couldn't be completed."

The lookup did not go through. This is usually temporary.

- Wait a moment and ask again, or repeat the request in a new message.
- Try a broader query.
- Check [jarvis.spacekeep.dev/api/health](https://jarvis.spacekeep.dev/api/health) — if
  `status` is `degraded`, the problem is on the service side.

JARVIS still answers from what it knows when a lookup fails, and says that the answer may not be
current.

### Web search is off

Your account has web search disabled, so no lookups run at all. Turn it back on at
[jarvis.spacekeep.dev/web](https://jarvis.spacekeep.dev/web) under **Search the web while
answering**.

### Web search isn't configured on this deployment

The Web page reports **Not configured**, meaning searching is unavailable on the deployment you are
on. JARVIS answers from the conversation and your saved memories instead. Nothing on your account
is misconfigured.

### JARVIS answered without searching

For a question that did not obviously need live information, JARVIS answers directly — that is
intended. Ask for the lookup explicitly:

```text
Search this on Google: …
Look this up online.
```

Asking *"what's the latest…"*, *"right now"*, or *"is there anything new?"* also triggers a fresh
search.

### JARVIS kept asking a clarifying question after searching

It should not. If a searched reply ends in a question instead of an answer, note the exact message
and report it — that is a defect, not expected behaviour.

## Password problems {#password-problems}

### No reset email arrived

The reset page always confirms the request, whether or not the address is registered — so a
confirmation is not proof that an account exists.

- Check spam and promotions.
- Confirm you used your JARVIS address.
- Requests are limited per address; wait a minute before retrying.
- Try once more.

### "This reset link is invalid or has expired."

Reset links last 30 minutes, work once, and are invalidated when a new one is requested. Request a
fresh link and use it straight away.

### I am signed in everywhere but was asked for a password

Accounts created with Google or GitHub have no password until one is set. Use **Forgot password?**
with your email address to set one.

### Changing my password signed me out

Expected. A password change ends every session on every device. Sign in again. If you did not
change it, treat it as a security issue and change it now.

## Memory problems {#memory-problems}

### JARVIS forgot something I told it

Memory only stores what you explicitly ask it to keep, plus a small number of clear project
statements. Re-ask in an explicit form:

```text
Remember that …
Keep in mind that …
Save this: …
```

If a statement arrived mid-conversation without one of those forms, it stayed in the conversation
only.

### Memory is off

Switch it back on in [Settings](/jarvis/account/settings/#memory). While it is off, JARVIS neither
saves new memories nor uses stored ones — the stored entries are still there.

### JARVIS did not delete the memory I asked it to forget

JARVIS only deletes when exactly one memory matches what you asked for. If several match it asks
which one, and if none match nothing is deleted. Name the memory more specifically, or delete it
directly on the [Memory page](https://jarvis.spacekeep.dev/memory).

### A memory has the wrong category

Edit it on the Memory page — the category is re-derived from the text you set.

### JARVIS refuses to remember something

Content that looks like a credential is never stored, including when you explicitly ask. Rephrase
without the secret.

## Conversations {#conversation-problems}

### A conversation is missing from the sidebar

Conversations appear once they contain a message. A conversation you started but never sent a
message in does not appear — that is expected.

Very old conversations may be outside the most recent list. Use **Search conversations…** to find
one by title or by content of a message.

### A conversation has the wrong title

JARVIS titles a conversation from your first real request and does not change a meaningful title
afterwards. Rename it with **⋯** → **Rename**.

### JARVIS lost the thread

Context comes from the conversation you are in. Opening a different conversation starts without the
old context. Reopen the original one, or restate what you need.

## Tasks {#task-problems}

### My task was not added

Try an explicit form:

```text
Add a task: renew the domain.
Task: book the dentist.
```

JARVIS only acts on clear phrasings when writing through chat. If the wording was loose, add it from
the [Tasks page](https://jarvis.spacekeep.dev/tasks) instead.

### JARVIS asked which task I meant

Your words matched more than one open task, so it changed nothing. Name the one you mean, or use the
Tasks page.

### JARVIS said it could not find the task

Nothing on your open list matched. Ask *"what's on my list?"* to see the current entries, or use the
Tasks page.

### A task I completed is gone

Completed tasks stay under **Done** and can be reopened. Only a deleted task is removed
permanently.

## API problems {#api-problems}

### `401 Invalid API key.`

The key is unknown, malformed, or revoked. Check that:

- The header is `Authorization: Bearer jrv_…`.
- The key was not revoked on the [Developer page](https://jarvis.spacekeep.dev/developer).
- You did not lose the key at creation — it is shown once and cannot be retrieved.

Revoke it and create a new one.

### `401 Authentication required.` on a conversation endpoint

Conversations belong to an account. Send a valid key or a session cookie.

### `404 Conversation not found.`

The id does not exist **for this account**. It was deleted, or it belongs to another account —
the two are deliberately indistinguishable.

### `429 Too many requests.`

You are over a rate limit. Back off and retry rather than retrying immediately. See
[Rate limits](/jarvis/api/authentication/#rate-limits).

### `403` with a restriction code

Your account is restricted across SpaceKeep Labs. See
[Global Enforcement](/jarvis/security/global-enforcement/).

### `503`

Access could not be verified right now. This is temporary and not a decision about your account —
retry shortly.

### `504`

The reply took too long. Retry, and consider a shorter or more specific prompt.

### A key works for chat but not for memories

Expected. Keys cover chat, conversations, and tasks. Memories, web activity, and key management are
session-only. See [Which endpoints accept what](/jarvis/api/authentication/#which-endpoints-accept-what).

## Account restricted {#account-restricted}

JARVIS shows a notice stating that your account has been restricted by SpaceKeep Labs, and that the
restriction is not limited to JARVIS.

- Signing in again — with a password, Google, or GitHub — does not lift it.
- Nothing inside JARVIS can change it.
- If you believe it was issued in error, contact [SpaceKeep Labs support](https://spacekeep.dev)
  and include the reference from the notice.

Full detail: [Global Enforcement](/jarvis/security/global-enforcement/).

## "Temporarily unavailable" notice

JARVIS cannot confirm your access right now. Nothing about your account or data has changed, no
restriction was recorded, and later requests simply check again.

Choose **Try again** in a moment. If it persists, it is not something you caused.

## Slow or failing responses

- Check [jarvis.spacekeep.dev/api/health](https://jarvis.spacekeep.dev/api/health). A `degraded`
  status explains most cases.
- Very long conversations are more work to answer. Start a new one for an unrelated topic.
- Web searches add time. Ask a direct question when you do not need current information.

## Still stuck?

Include these when you report a problem:

1. The exact message or error text.
2. What you expected instead.
3. Whether it happens every time or intermittently.
4. The browser and device.
5. The `status` from [the health endpoint](https://jarvis.spacekeep.dev/api/health) at the time.

## Related

- [Support](https://spacekeep.dev) — SpaceKeep Labs
- [JARVIS Policies](https://jarvis.spacekeep.dev/policy) — acceptable use
- [API Reference](/jarvis/api/reference/) — error codes and endpoint behaviour
