Troubleshooting
Most of Strata’s feedback — successes, warnings, and failures — appears in the status line in the top bar, just right of the Docs ↗ link. When something doesn’t behave as expected, look there first; the messages below quote it exactly.
The status line is your feedback surface
The status line starts as a hint (“Scroll to pan · ⌘/pinch to zoom · drag empty canvas to select · Space+drag to pan · C to connect.”) and is replaced by the result of your most recent action — “Saving…”, “Saved …”, “Imported N resource(s) …”, an error, and so on. It shows one message at a time, so re-read it after each action.
The “Discover” button is greyed out
On the Connect to cloud → Live scan tab, Discover is disabled in these cases. Check them in order:
- No resource types selected. The header reads Resource types (0 selected). Tick at least one type, or click Select all.
- The required scope is empty. GCP needs a project/folder/organization and
Azure needs a subscription id — fill the provider’s scope field. (AWS Region
defaults to
us-east-1, so it never disables Discover.) - A scan is already running. The button reads Scanning…. Wait for it to finish.
- Hosted install with no credentials (or no live scan for that provider). On
an install where the operator set
NEXT_PUBLIC_STRATA_HOSTED=1, AWS requires an Access key ID and Secret access key; GCP/Azure live scan may be disabled entirely (they use the server’s ambient credentials). Until satisfied, Discover stays disabled — fill the keys in or use the Paste export tab instead. See Connecting to a Cloud.
A live scan fails with a credentials error
If AWS rejects the scan, the dialog shows a red banner reading “AWS rejected those credentials (wrong, expired, or lacking permission). Check the keys and retry.” Common causes:
- Expired temporary credentials — STS session tokens are short-lived. Re-run
aws sts get-session-tokenand paste the fresh values. - Missing permissions — the identity needs
cloudcontrol:ListResourcesandcloudcontrol:GetResourceplus read access to the services you’re scanning. AttachReadOnlyAccessor the equivalent. See IAM permissions. - Wrong key/secret pair — re-copy both; the secret is masked, so a stray character is easy to miss.
A different banner — “Discovery failed. Check the region and that the server can reach AWS.” — points at the Region value or the server’s network access rather than the credentials.
For GCP and Azure, live scans use the server’s ambient credentials
(Application Default Credentials / DefaultAzureCredential), not pasted keys — so
an authentication failure there means the server’s gcloud / az login or its
read role (Cloud Asset Viewer / Reader) needs fixing, not anything you enter in the
dialog.
”Save failed: …”
Saving writes to your browser’s local storage, not a server. On success the status line reads “Saved “<name>” to this browser.”; if it fails the line reads “Save failed: …” with the reason appended. The most common cause is storage being full: “Save failed: Browser storage is full — delete a saved diagram or export to JSON.” To recover:
- Open Open ▾ and delete diagrams you no longer need (the ✕ beside each).
- Or Export JSON (from the Data ▾ menu) to keep a copy as a file, then clear space.
Because saved diagrams live in one browser, they won’t appear in a different browser or on another machine — move them with Export JSON / Import JSON.
API requests return 401 Unauthorized
If the deployment sets the AWS_FLOW_API_TOKEN environment variable, the graph and
discovery API routes require an Authorization: Bearer <token> header that matches
it; any request without the right token gets a 401. This guard is off by default
(the variable unset). If you’re calling the routes directly (e.g. with curl or a
script) and getting 401s, send the header:
curl -H "Authorization: Bearer $AWS_FLOW_API_TOKEN" http://localhost:3000/api/graphsThe in-app UI on a local install doesn’t attach this header, so enabling the token is intended for deployments that front the API with a known secret.
Import says “not a valid architecture file”
When you Import JSON a file that isn’t a Strata diagram (or is corrupt), the status line reads “Import failed: not a valid architecture file.” Make sure you’re importing a file produced by Export JSON — not a CloudFormation or Terraform file. For those, use Import IaC instead (see Importing & Exporting IaC). A separate message, “Import failed: could not read file.”, means the file couldn’t be read at all.
IaC imports report problems as “IaC import failed: …” with the parser’s reason appended; unrecognized resource types don’t fail the import — they’re listed as “Unmapped types: …” after a successful one.
”Suggest rules” returns nothing
In the inspector’s Rule Suggestions panel (or via Analyze ▾ → Suggest rules), if your diagram has no resources that imply security-group or routing rules, the panel shows “No suggestions yet—add ALB/Service, Subnets, NACLs…”. This isn’t an error — add the resources the suggestions key off (load balancers and their targets, subnets, route tables, NACLs) and run it again. Likewise, Validation shows “No issues found.” when every check passes.