Why logs matter
Logs are essential for:Debugging errors
When something goes wrong, logs show you exactly what happened and where the issue occurred.
Verifying features work
After building or updating a feature, logs confirm it’s running correctly.
Understanding user actions
See what users are doing in your app—which buttons they tap, what data they submit, etc.
Monitoring performance
Track how long actions take and identify slow operations that need optimization.
How to use logs
Filter by source
Switch between Frontend and Backend to focus on different parts of your app:- Frontend
- Backend
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
Frontend logs help you understand the user experience and debug interface issues.
Filter by level
Choose which types of log entries to see:All Levels
All Levels
Shows everything—useful for getting the complete picture of what’s happening.
Errors
Errors
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.Example: API key not valid, database connection failed, function threw an exception
Warnings
Warnings
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
Info
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
Success
Success
Shows successful operations and their completion details.Success logs confirm features are working as intended.Example: Payment processed, file uploaded, notification delivered
Filter by time
Since last deploy (checkbox)
Search logs
Use the search bar to find specific:- Error messages
- Function names
- User IDs
- Keywords or text
Reading log entries
Each log entry includes:Shows whether the log came from your app’s interface or server
Exact time the event occurred (e.g., “Dec 14, 11:20:25 AM”)
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
Technical details like:
- File paths and line numbers
- Function call hierarchy (stack trace)
- API responses or error codes
Understanding errors
When you see an error in logs (highlighted in red/pink):1
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."2
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
3
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.
4
Fix the issue
Based on the error message, take action:
- Add a missing API key in API Connections
- Fix incorrect logic in your app
- Update configuration or environment variables
5
Verify the fix
After making changes, watch the logs to confirm the error no longer appears.
Common scenarios
No logs appearing
No logs appearing
If you see “No frontend logs found since last deploy”:
- Make sure you’re using your app (logs only appear when something happens)
- Try unchecking “Since last deploy” to see older logs
- Switch between Frontend and Backend tabs
- Check if the search box has any filters that might be hiding results
User reports a problem
User reports a problem
- Ask when the issue occurred (date/time)
- Switch to the appropriate tab (Frontend for UI issues, Backend for data/logic issues)
- Uncheck “Since last deploy” if needed to see older logs
- Filter to “Errors” to see what failed
- Look for errors around that time
- Read the error message to understand what went wrong
Testing a new feature
Testing a new feature
- Check “Since last deploy” to see only recent activity
- Keep logs open while testing your feature
- Watch for new log entries as you interact with your app
- Filter to “Errors” to catch any issues immediately
- Verify success messages appear when expected
API or integration error
API or integration error
If you see errors about API keys, external services, or connections:
- Read the error message carefully (often tells you exactly what’s wrong)
- Check API Connections to verify keys are configured
- Ensure auto-provisioning is enabled or custom keys are valid
- Look for specific error codes (like “400 Bad Request” or “401 Unauthorized”)
- Consult the external service’s documentation if needed
Performance issues
Performance issues
- Switch to “All Levels” to see all operations
- Look for patterns of slow operations
- Check Backend logs for long execution times
- Identify which functions are taking the longest
- Consider optimization or reach out for help
Tips for non-technical users
Don't panic about technical details
You don’t need to understand every line—focus on the main error message and what it says went wrong.
Use filters liberally
Start with “Errors” only to avoid being overwhelmed. You can always expand to see more.
Copy errors when asking for help
If you need support, copy the entire error log entry—it helps diagnose issues faster.
Watch logs while testing
Keep logs open in a second window or tab while testing your app. You’ll catch issues immediately.
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:- Copy the error message (including stack trace)
- Note what you were doing when the error occurred
- Check if it’s repeatable (does it happen every time?)
- Share the log entry with Bloom support or your team
Need more help?
Contact support with your log details for personalized assistance