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

# Logs

> See what's happening in your app in real time.

**Logs** show you everything that's happening in your app as it runs. Think of them like a detailed activity feed that tracks events, errors, and actions from both your app's interface (frontend) and its backend logic.

Logs help you understand what your app is doing, troubleshoot issues, and verify that features are working as expected.

## Why logs matter

Logs are essential for:

<CardGroup cols={2}>
  <Card title="Debugging errors" icon="bug">
    When something goes wrong, logs show you exactly what happened and where the issue occurred.
  </Card>

  <Card title="Verifying features work" icon="check">
    After building or updating a feature, logs confirm it's running correctly.
  </Card>

  <Card title="Understanding user actions" icon="user">
    See what users are doing in your app—which buttons they tap, what data they submit, etc.
  </Card>

  <Card title="Monitoring performance" icon="gauge">
    Track how long actions take and identify slow operations that need optimization.
  </Card>
</CardGroup>

## How to use logs

### Filter by source

Switch between **Frontend** and **Backend** to focus on different parts of your app:

<Tabs>
  <Tab title="Frontend">
    **Frontend logs** show what's happening in your app's user interface:

    * User interactions (button taps, navigation, form submissions)
    * Screen transitions and component updates
    * Network requests from your app
    * Client-side errors or warnings

    <Info>
      Frontend logs help you understand the user experience and debug interface issues.
    </Info>
  </Tab>

  <Tab title="Backend">
    **Backend logs** show what's happening on your server:

    * Function calls and database operations
    * API requests to external services (like AI models)
    * Authentication attempts
    * Server errors or performance issues

    <Info>
      Backend logs help you verify that your app's logic and data operations are working correctly.
    </Info>

    <Note>
      The badge with a number (e.g., "6") shows how many backend log entries are currently visible.
    </Note>
  </Tab>
</Tabs>

### Filter by level

Choose which types of log entries to see:

<AccordionGroup>
  <Accordion title="All Levels" defaultOpen icon="list">
    Shows everything—useful for getting the complete picture of what's happening.
  </Accordion>

  <Accordion title="Errors" icon="circle-xmark">
    **Shows only critical failures** that break functionality.

    Errors appear in red/pink backgrounds and typically include detailed error messages and stack traces showing where the problem occurred.

    <Warning>
      Start here when debugging! Errors indicate something needs to be fixed.
    </Warning>

    **Example:** API key not valid, database connection failed, function threw an exception
  </Accordion>

  <Accordion title="Warnings" icon="triangle-exclamation">
    **Shows potential issues** that might cause problems but didn't break anything yet.

    Warnings help you catch issues before they become errors.

    **Example:** Deprecated function used, slow query detected, unusual data pattern
  </Accordion>

  <Accordion title="Info" icon="circle-info">
    **Shows general application events** and confirmations.

    Info logs tell you what your app is doing during normal operation.

    **Example:** User logged in, email sent, data saved successfully
  </Accordion>

  <Accordion title="Success" icon="circle-check">
    **Shows successful operations** and their completion details.

    Success logs confirm features are working as intended.

    **Example:** Payment processed, file uploaded, notification delivered
  </Accordion>
</AccordionGroup>

### Filter by time

<Check>
  **Since last deploy** (checkbox)
</Check>

When checked, logs only show entries from after your most recent deployment. This helps you focus on the current version of your app and ignore older logs.

<Tip>
  Enable "Since last deploy" when testing new features to see only relevant activity.
</Tip>

### Search logs

Use the search bar to find specific:

* Error messages
* Function names
* User IDs
* Keywords or text

This is helpful for tracking down specific issues or understanding what happened during a particular user session.

## Reading log entries

Each log entry includes:

<ResponseField name="Source badge" type="Frontend | Backend">
  Shows whether the log came from your app's interface or server
</ResponseField>

<ResponseField name="Timestamp" type="date/time">
  Exact time the event occurred (e.g., "Dec 14, 11:20:25 AM")
</ResponseField>

<ResponseField name="Message" type="string">
  Description of what happened, including:

  * The type of event (e.g., `[CONVEX A(...)]`, `[ERROR]`)
  * Detailed error messages for failures
  * Function names and file locations
  * Stack traces showing the code path
</ResponseField>

<ResponseField name="Additional context" type="object">
  Technical details like:

  * File paths and line numbers
  * Function call hierarchy (stack trace)
  * API responses or error codes
</ResponseField>

## Understanding errors

When you see an error in logs (highlighted in red/pink):

<Steps>
  <Step title="Read the error message">
    The main message explains what went wrong in plain language.

    **Example:** `"API key not valid. Please pass a valid API key."`
  </Step>

  <Step title="Check the context">
    Look at the details below the error:

    * Which function failed (`predictions:scanMatches`)
    * The file and line number (`convex:/user/predictions.js:1509:9`)
    * What the function was trying to do when it failed
  </Step>

  <Step title="Look at the stack trace">
    The lines starting with "at" show the sequence of function calls that led to the error. This helps pinpoint exactly where the issue occurred.
  </Step>

  <Step title="Fix the issue">
    Based on the error message, take action:

    * Add a missing API key in [API Connections](/api-connections)
    * Fix incorrect logic in your app
    * Update configuration or environment variables
  </Step>

  <Step title="Verify the fix">
    After making changes, watch the logs to confirm the error no longer appears.
  </Step>
</Steps>

## Common scenarios

<AccordionGroup>
  <Accordion title="No logs appearing" icon="inbox">
    If you see "No frontend logs found since last deploy":

    1. Make sure you're using your app (logs only appear when something happens)
    2. Try unchecking "Since last deploy" to see older logs
    3. Switch between Frontend and Backend tabs
    4. Check if the search box has any filters that might be hiding results
  </Accordion>

  <Accordion title="User reports a problem" icon="user">
    1. Ask when the issue occurred (date/time)
    2. Switch to the appropriate tab (Frontend for UI issues, Backend for data/logic issues)
    3. Uncheck "Since last deploy" if needed to see older logs
    4. Filter to "Errors" to see what failed
    5. Look for errors around that time
    6. Read the error message to understand what went wrong
  </Accordion>

  <Accordion title="Testing a new feature" icon="flask">
    1. Check "Since last deploy" to see only recent activity
    2. Keep logs open while testing your feature
    3. Watch for new log entries as you interact with your app
    4. Filter to "Errors" to catch any issues immediately
    5. Verify success messages appear when expected
  </Accordion>

  <Accordion title="API or integration error" icon="plug">
    If you see errors about API keys, external services, or connections:

    1. Read the error message carefully (often tells you exactly what's wrong)
    2. Check [API Connections](/api-connections) to verify keys are configured
    3. Ensure auto-provisioning is enabled or custom keys are valid
    4. Look for specific error codes (like "400 Bad Request" or "401 Unauthorized")
    5. Consult the external service's documentation if needed
  </Accordion>

  <Accordion title="Performance issues" icon="gauge">
    1. Switch to "All Levels" to see all operations
    2. Look for patterns of slow operations
    3. Check Backend logs for long execution times
    4. Identify which functions are taking the longest
    5. Consider optimization or reach out for help
  </Accordion>
</AccordionGroup>

## Tips for non-technical users

<CardGroup cols={2}>
  <Card title="Don't panic about technical details" icon="hand">
    You don't need to understand every line—focus on the main error message and what it says went wrong.
  </Card>

  <Card title="Use filters liberally" icon="filter">
    Start with "Errors" only to avoid being overwhelmed. You can always expand to see more.
  </Card>

  <Card title="Copy errors when asking for help" icon="copy">
    If you need support, copy the entire error log entry—it helps diagnose issues faster.
  </Card>

  <Card title="Watch logs while testing" icon="eye">
    Keep logs open in a second window or tab while testing your app. You'll catch issues immediately.
  </Card>
</CardGroup>

<Tip>
  **Scroll to Bottom** button: Click this to jump to the most recent logs instantly.
</Tip>

## Real-time updates

Logs update automatically as your app runs. You don't need to refresh—new entries appear at the bottom of the list as they happen.

This makes logs perfect for:

* Live debugging while testing
* Monitoring your app during active use
* Watching deployments complete successfully

## Getting help with logs

If you encounter an error you can't resolve:

1. **Copy the error message** (including stack trace)
2. **Note what you were doing** when the error occurred
3. **Check if it's repeatable** (does it happen every time?)
4. **Share the log entry** with Bloom support or your team

<Card title="Need more help?" icon="life-ring" href="https://bloom.diy">
  Open the in-app chat to contact support with your log details for personalized assistance.
</Card>

## Related features

<CardGroup cols={2}>
  <Card title="Backend Dashboard" icon="chart-line" href="/backend-dashboard">
    See high-level health metrics and system status
  </Card>

  <Card title="API Connections" icon="plug" href="/api-connections">
    Configure API keys and external service integrations
  </Card>
</CardGroup>
