Prism›Help

Troubleshooting

Most problems in Prism fall into four buckets: something is not signed in, something is not installed, the daemon is not where you think it is, or the workspace is not what you think it is. This page works through each.

Start here

Settings → About lists every helper binary Prism resolved at startup and whether it was found. Half the "feature X is greyed out" reports are answered by one look at that page.

Settings → About, with one tool resolved and one reported missing.


The agent

The agent will not respond

  1. Check the account. Settings → Account. Reaching the app at all means you are signed in, but the organization shown there is the one the agent and its metering run against.
  2. Check the connection status. Settings → Agent shows it directly.
  3. Check the thread is grounded. An ungrounded thread has no workspace, so file and shell tools are unavailable. See Threads & Workspaces.

"This session won't be restored next launch"

Settings → Account says this when Prism signed you in but could not write the session to the system keychain. You stay signed in for now and have to sign in again next launch. A sign-out can fail the same way, and reads signed out, but the saved session could not be removed from the keychain and will be restored next launch — the session is still in the keychain, so the next launch picks it back up.

Both are the keychain refusing access, not the agent: unlock the login keychain (macOS Keychain Access), make sure a Secret Service keyring is running on Linux, or check Credential Manager is reachable on Windows — then sign in again.

"The model provider is temporarily overloaded"

This is a temporary capacity problem, not an issue with your workspace or Prism installation. The turn ends instead of resuming automatically; wait a moment, then retry it.

"You've run out of AI credits"

The organization's AI credits are spent, so the agent service refuses the message. The error appears on the message you sent and carries a Buy credits link: top the balance up, then send it again. It reads the same whether the send was refused up front or a running turn was cut off, and the balance is in Settings → Subscription, under Usage Credits.

"New accounts are temporarily paused"

Agent usage on new free organizations is paused while Navier AI works through demand, so the agent refuses before it reaches a model. Nothing on this machine will change it — the rest of Prism works as normal, and your Navier AI contact can say where the pause stands for your organization.

It says it cannot read a file

The path is outside the workspace root. The agent's file access is scoped to the folder you attached — that is the boundary, and it is deliberate.

Either attach a root that contains the file, or start a new thread rooted somewhere broader.

It keeps asking for permission

You are in Manual mode, or the command does not match your allowlist.

⇧Tab cycles to Accept Edits, and allowlisting the read-only commands you approve constantly cuts most of the rest.

Note that a command containing &&, |, ;, >, $(, or a newline never matches an allowlist rule, whatever its first words are. That is not a bug.

It did something I did not want

  1. ⌃C stops the turn.
  2. Open the diff and see what actually changed.
  3. Revert with git if the workspace is a repository.

Interrupting is not an undo — files already written stay written. If you are about to let an agent work in a permissive mode, commit first, or use a worktree.

It is slower or vaguer than it was

The thread has probably grown long and unfocused. Start a new one (⌘N). A thread carries its whole transcript, which is what makes follow-ups work and what makes a wandering thread progressively worse.


Solvers

"Docker not found"

The Solver Desk needs a container engine on the same machine — Docker Desktop, Podman, Colima, or equivalent. Nothing else in Prism needs one: Ferro is compiled in, and the viewers are all in process. Install Docker on the engine's line opens Docker's download page; Settings → Local tools installs it for you on macOS and Windows, and gives you the command on Linux. See Environment Setup.

If an engine is installed and Prism still cannot see it, read the engine's line — it distinguishes not installed, not running, not responding, and refusing you its socket, and Details beside it says how to fix that particular case for whatever provides your engine. Prism checks PATH plus the standard install locations for your platform, and looks again whenever the engine stops answering where it last did, so an engine installed after Prism started is picked up without a restart. Confirm with docker run --rm hello-world.

"WSL isn't set up" (Windows)

Containers on Windows run on WSL 2, and this reads on the engine's line when WSL 2's Windows features are off — the engine cannot start, so there is nothing to start. Set up WSL beside the line opens Settings → Local tools; the Docker install there turns the features on through one administrator prompt, and a restart finishes it. See the container engine line.

The wrong engine, or the wrong socket

When the engine's line names an engine or an endpoint you did not expect, the endpoint resolution is what to check: DOCKER_HOST wins outright when it is set, then the Docker CLI's active context, then Podman, then the platform default. See which engine it talks to.

A solve dies with no useful error

Usually the container ran out of memory. Container limits are set in Docker, not in Prism, and a solver killed by the OOM reaper rarely gets to say so. Raise the memory ceiling in Docker Desktop's resource settings — see sizing.

"Mounts denied" or the case directory is empty inside the container

The daemon bind-mounts your case directory, and Docker Desktop only shares configured paths. Move the case somewhere shared — your home directory is, by default — or add its path to Docker's file-sharing list.

Results are owned by root (Linux)

They should not be: on Linux the container runs as your uid and gid. If you are running a custom runtime from your own catalog, check that its descriptor keeps run_as_host_user on.

The daemon is not running

Settings → Solvers and the Solver Desk both report daemon state, and the agent's prism_solver_status tool probes it live. Start or restart it from the Solver Desk, or ask the agent to.

Remember it is spawned detached: it survives Prism closing, and Prism adopts an already-running one on the next start rather than spawning a second.

A settings change had no effect

The core budget, idle shutdown, catalog path, and port are all read by the daemon once at startup. Change them, then restart the daemon.

A run is stuck in "Queued"

It is waiting on capacity. Either something else is running, or the core budget is lower than the run needs. Settings → Solvers → Core budget override.

A run says "Interrupted"

The daemon stopped while the run was executing. Nobody cancelled it and nothing failed — rerun it. This state exists specifically so a UI can offer "rerun" rather than a diagnosis.

A run failed

Start with the reason printed under the run in History: for a local stage it names the application that failed and how it ended. Then read the log — prism_solver_logs, or the Logs tab of the resulting .nvo. Solvers explain themselves there and almost nowhere else.

A run that ran out of memory and was killed is the exception: the kill comes from outside the solver, so the log is unlikely to explain it. Give the container engine more memory, or run a smaller case.

For OpenFOAM specifically, check the mesh before you debug the solver. A large share of solver failures are mesh failures wearing a solver's error message.

Installing a runtime is taking forever

It is a container image pull, and they are large. The first install of a family is the slowest thing in a first session. Subsequent runs reuse the image.


Files and viewers

A file opened as text when it should have opened in a viewer

Viewer routing is purely by extension. Check the extension is one Prism knows — see File Types — and that it is spelled the way Prism expects (a .STEP in capitals is fine; a .step.txt is not).

PDFs will not render

PDFium is missing. Settings → About confirms it. On Linux and in manually-assembled installs this usually means the binary was moved away from its sibling files — Prism resolves PDFium relative to its own executable.

Reinstall from the packaged artifact rather than copying the binary out.

A .pptx or .docx will not render

No conversion engine is installed. Prism renders Office files by converting them to PDF first, and that step needs LibreOffice — or, on Windows, an installed PowerPoint or Word. The file itself says which to install.

Install LibreOffice (brew install --cask libreoffice, your distribution's package, or winget install -e --id TheDocumentFoundation.LibreOffice) and reopen the file. If it is installed somewhere the probe misses, point PRISM_SOFFICE at the soffice binary. A PDF of the same content previews without any converter. Legacy .ppt and .doc are not handled at all — only the OOXML spellings.

CAD meshing is unavailable

The mesher binary was not found. Same cause and same fix as above: keep the install directory intact.

"the mesh and the geometry disagree by more than a factor of two"

A mesh built from a CAD script is checked against the geometry that script built, and a disagreement beyond 2x fails the step rather than handing back a model at the wrong scale. It almost always means a unit mismatch between what the STEP declares and the unit the mesher was asked for, which enters as a silent factor of 1000. Open the file and read the Size line in the viewport: if the part is already 1000x out there, the file is the problem rather than the mesh. See 3D Viewport.

gmsh is missing

Deliberately. It is GPL-licensed and not shipped. Settings → Local tools installs it on macOS, Windows and x86_64 Linux; otherwise install it yourself (brew install gmsh, your distribution's package, or pip install gmsh) and Prism picks it up from PATH. The failure names what to do on your platform; see Environment Setup.

The viewport is slow

Check the element count of what you are looking at — the mesh viewers report it. A "small" model with several million elements is not small.

The first pick against a very large mesh pauses while the acceleration structure is built; after that it is fast.

The 3D mouse does nothing

Install the 3DxWare driver. Prism talks to the driver rather than the device directly, so without it there is nothing to talk to. Then check Settings → Input → 3D mouse is on.


Installation and updates

That is the sign-in gate, and it is the whole app until you are signed in. With no button, a saved session is still being read from the keychain; give it a moment. With Log in, there is no saved session — click it, and finish the sign-in in the browser Prism opens. See Signing in.

The sign-in gate shows an error

The line under Try again is the reason the sign-in or the session restore failed, and Try again re-runs whichever step failed. Usually it is the sign-in service being unreachable — Could not reach sign-in service — so check the connection, and the loopback port if a firewall is in play (Network access covers the port). A saved session that is no longer valid is not an error: it drops you to Log in instead.

macOS says the app is from an unidentified developer

Prism is signed and notarized, so this should not happen. If it does, the download was interrupted or altered — re-download rather than right-click-opening it.

Features go missing after I move the binary

Prism resolves several sidecar tools relative to its own executable. Moving the Prism binary out of its install directory breaks the Solver Desk, CAD meshing, and PDF rendering. Keep the directory intact.

Prism disappeared, and the next launch asks about it

After a crash, the next launch opens Prism quit unexpectedly — a yes or no, with nothing to fill in. The report is written for you from the crash itself: the version, the time, the panic, and the last 256 KB of log, which ends at the panic record rather than at whatever the launches since appended. That log may contain file paths from your project. Send report files it; Don't send discards it. Either way the crash is offered only once, and only on the channel that crashed: a dev build's crash is never offered by the stable build.

The prompt needs you signed in, so it appears once the session is restored rather than at the window's first frame. A bug report you already have open is left alone, and the crash waits for the launch after.

The log on disk is the other record, written one file per UTC date:

PlatformLog directory
macOS~/Library/Logs/com.navier.prism/
Linux~/.local/share/com.navier.prism/logs/
Windows%LOCALAPPDATA%\com.navier.prism\logs\

The panic lands in that day's prism.<date>.log; a dev-channel build logs under com.navier.prism.dev instead. An empty log is not evidence that nothing went wrong, since a process the system kills may write nothing — and a kill is not a panic, so it leaves no prompt on the next launch either.

The update did not appear

Builds are on either the stable or dev channel, fixed at build time. A stable build only ever offers stable updates. Switching channels means installing the other build.


The browser pane

The browser is missing on Linux

It is not available there. The shortcut and menu entry are removed rather than left pointing at a pane that cannot do anything, and the agent gets no browser tools on Linux — it will not offer to look something up in the app, so give it the page contents or a link to open in your own browser.


Getting help

Report a bug

The bug icon in the threads sidebar footer opens Report a bug; on macOS, Help ▸ Report a Bug… does the same. Describe the issue, and Prism sends your description, your Prism version, and the conversation you have open if there is one, along with your platform and release channel. A thread is not required — a report from an empty chat goes through.

  • A description is required — Send stays disabled until you type one, and while an attachment is still being prepared. Empty, the dialog says Add a description to send the report.
  • The description is capped at 16 KB. Over it, Send stays disabled and the dialog names the overage — there is no need to paste a log, because the logs are attached for you.
  • Attach images… adds screenshots, or paste one with ⌘V / Ctrl+V. Each thumbnail has a remove control. Ten is the limit, and the dialog says so when it drops one.
  • Include recent Prism logs (last 256 KB) is on by default. The logs may contain file paths from your project, so turn it off if that matters for this report.
  • ⌘↩ / Ctrl+Enter sends, Esc closes.

A sent report comes back with a Reference id; quote it if you follow the report up with us.

A crash is reported from its own prompt on the next launch instead of this dialog: there is nothing to describe, no screenshots to attach, and no thread rides along, because the chat open then is not the one the crash happened in. See Prism disappeared, and the next launch asks about it.

If you are reporting somewhere else instead, include your version and release channel (Settings → About), your platform, the relevant part of the transcript or the solver log, and — for anything solver-related — what the Solver Desk says about the daemon and Docker.

The FAQ covers the questions that come up before problems do.