> ## Documentation Index
> Fetch the complete documentation index at: https://docs.solya.app/llms.txt
> Use this file to discover all available pages before exploring further.

# FAQ & troubleshooting

> Quick answers to common questions about data, alerts, plans, risk, access, and the API.

## Data & ingestion

<AccordionGroup>
  <Accordion title="My latest data isn't showing up">
    Check the most recent [ingestion run](/en/data-layer/ingestion-runs) — its status and
    logs tell you whether the import succeeded. Analytics (dashboards, KPIs, risk) reflect
    the **last successful** ingestion.
  </Accordion>

  <Accordion title="An ingestion run failed">
    Open the run and read its `Error`-level logs and message. Common causes: the file
    didn't match a deployed [ingestion spec](/en/data-layer/ingestion-spec), or a column
    didn't parse. Test the file in the [sandbox](/en/data-platform/sandbox) before retrying.
  </Accordion>

  <Accordion title="A spec doesn't pick up my file">
    The file must satisfy the spec's [detection rules](/en/developers/ingestion-specs/detection)
    (data source, filename pattern, header columns) **and** the spec must be deployed. Use
    the sandbox to see which spec matches.
  </Accordion>
</AccordionGroup>

## Alerts & signals

<AccordionGroup>
  <Accordion title="My alert isn't firing">
    Alerts are **tag-driven**: they watch for entities carrying chosen tags. Make sure a
    [tagging rule](/en/automation/tags) actually tags the entities, that a
    [tag evaluation run](/en/developers/tagging-rules/runs-and-examples) has run, and that
    the alert's tags/perimeter match. See [Alerts](/en/signals/alerts).
  </Accordion>

  <Accordion title="How do I alert on a metric threshold?">
    Create a tagging rule with a metric condition (e.g. days of stock ≤ 7) to tag the
    matching items, then point an alert at that tag. See
    [Alerts overview](/en/developers/alerts/overview).
  </Accordion>
</AccordionGroup>

## Plans & approvals

<AccordionGroup>
  <Accordion title="I can't validate a plan — it asks for approval">
    The plan's value crossed an [approval policy](/en/intelligence-layer/policies-and-lists)
    threshold. An approver (with the *Plan approver* permission) decides from the approvals
    queue. See [Plan lifecycle & approvals](/en/inventory-plans/lifecycle).
  </Accordion>

  <Accordion title="Adding an item is blocked">
    A [business rule](/en/intelligence-layer/rules-and-rulesets) in **Block** mode rejected
    it (e.g. a budget cap or supplier MOQ). The message names the rule; adjust the item or
    the ruleset.
  </Accordion>

  <Accordion title="An approval disappeared / expired">
    Approvals **expire** automatically when the plan changes after the request, so a stale
    approval never applies. Re-validate to request a fresh one.
  </Accordion>
</AccordionGroup>

## Risk & analytics

<AccordionGroup>
  <Accordion title="Risk or KPI figures look stale">
    They're computed over the latest ingested data — confirm a recent successful
    [ingestion run](/en/data-layer/ingestion-runs). See
    [Inventory risks](/en/inventory-risks/overview).
  </Accordion>

  <Accordion title="A user sees fewer shops than expected">
    Shop visibility depends on the role: `shops.viewAll` vs `shops.viewAssigned`. See
    [Users, teams & roles](/en/administration/users-teams-roles).
  </Accordion>
</AccordionGroup>

## Access & API

<AccordionGroup>
  <Accordion title="A teammate can't see a section">
    Sections are gated by permissions and the org's
    [navigation template](/en/administration/navigation-templates). Check their role and the
    assigned template.
  </Accordion>

  <Accordion title="My API call returns 401 vs 403">
    `401` means the token is missing, invalid, revoked, or expired — re-issue it. `403`
    means the token lacks the required permission — grant it (revoke + recreate, since
    permissions are fixed at creation). See [Error codes](/en/developers/error-codes).
  </Accordion>

  <Accordion title="I lost my API token value">
    The plaintext token is shown only once. If lost, revoke it and create a new one under
    [API tokens](/en/administration/api-tokens).
  </Accordion>
</AccordionGroup>

<Note>
  Didn't find your answer? The [AI Agent](/en/apps/ai-agent) can often answer questions
  about your own data directly.
</Note>
