Troubleshooting
Common issues and how to fix them.
BigQuery connection issues
"Could not connect to BigQuery" or credentials error
Your service account JSON may be invalid or incomplete.
- Re-download the JSON key from Google Cloud Console
- Make sure you're uploading the JSON key file, not the service account email or ID
- The JSON file should contain
type,project_id,private_key, andclient_emailfields
"Access Denied" or "Permission denied" on queries
The service account doesn't have the right BigQuery permissions.
- Go to IAM & Admin in your GCP project
- Find your service account email
- Make sure it has at least the BigQuery Data Viewer and BigQuery Job User roles
- If querying across projects, grant access in both the data project and the billing project
"Project not found"
- Verify the
project_idin your service account JSON matches an active GCP project - Make sure the BigQuery API is enabled: go to APIs & Services > Library and search for "BigQuery API"
Deploy failures
"Missing environment variables"
The CLI couldn't find required configuration.
- Make sure you have a
.envor.env.localfile with yourOVERSCORE_API_KEY - You can also pass it inline:
OVERSCORE_API_KEY=your-key npx @overscore/cli deploy - Check that your API key hasn't been revoked in the Hub under project settings
"Build failed" during deploy
Your dashboard has a build error that needs to be fixed locally first.
- Run
npm run buildlocally and fix any errors - Common causes: missing imports, TypeScript errors, or referencing browser APIs at build time
- Make sure all dependencies are in
package.json(not just installed globally)
"Dashboard not found" or "Invalid slug"
- The dashboard slug in your
overscore.config.tsmust match one you've created in the Hub - Slugs are case-sensitive and can only contain lowercase letters, numbers, and hyphens
- Double-check your project slug too — the deploy target is
project-slug/dashboard-slug
Query errors
BigQuery date objects returning as strings
BigQuery DATE and TIMESTAMP types get serialized as strings in JSON responses. Parse them in your frontend:
// BigQuery returns dates as "2024-01-15" strings
const date = new Date(row.created_date);
CORS errors when querying
You should never call BigQuery directly from the browser. All queries go through the Overscore proxy API.
- Use the
useQueryhook from@overscore/client— it handles routing automatically - If you see CORS errors, make sure you're using the hook and not making direct
fetchcalls to BigQuery - Check that your
overscore.config.tshas the correctprojectSlug
Query timeout
BigQuery queries that scan large amounts of data may time out.
- Add
LIMITclauses to your queries during development - Use date filters to reduce the scan range
- Consider creating materialized views or summary tables in BigQuery
- The default timeout is 30 seconds — if you consistently need more, optimize your queries
Authentication issues
Google OAuth redirect not working
After clicking "Sign in with Google," you get an error or blank page.
- Make sure you're accessing Overscore from the correct URL (not localhost in production)
- Clear your browser cookies for the site and try again
- If you see "redirect_uri_mismatch," this is a server configuration issue — contact support
"Invalid API key"
- API keys are scoped to a project. Make sure you're using the key for the right project
- Check if the key was deleted or regenerated in the Hub
- API keys are shown once when created — if you lost it, generate a new one
"Not authorized" when viewing a dashboard
- The viewer needs to be added to the project's team members in the Hub
- Ask the project owner to add their Google email under Settings > Team
- Viewers must sign in with the same Google account that was invited
Caching issues
Stale data showing after BigQuery update
If you've updated data in BigQuery but the dashboard still shows old values:
- Caching respects the TTL (time-to-live) you set on each query
- Wait for the TTL to expire, or set a shorter TTL during development
- You can force a refresh by clearing the cache in the Hub under your dashboard's settings
DuckDB-WASM errors in the browser
The local caching layer uses DuckDB-WASM and occasionally hits browser-specific issues.
- Make sure you're using a modern browser (Chrome 90+, Firefox 90+, Safari 15+)
- Try clearing your browser's IndexedDB storage for the site
- If the error persists, disable caching by setting
cache: falsein your query options:
useQuery("my_query", { params: {}, cache: false });
"Cache miss" on every request
- Verify that caching is enabled in your dashboard settings in the Hub
- Check that the TTL is set to a value greater than 0
- The cache is per-browser — each user builds their own local cache on first visit
Still stuck?
- Check the CLI Reference for command-specific help
- Review Core Concepts to make sure your setup is correct
- Open an issue on GitHub