Setup Issues
Python not found or wrong version
Python not found or wrong version
Symptoms:Install Python 3.8+ if missing:Update your shell aliases (add to
python: command not foundPython version is 2.xwhen you need 3.x- Scripts fail with syntax errors
python3 instead of python:.bashrc or .zshrc):Virtual environment activation fails
Virtual environment activation fails
Symptoms:On Windows, use different activation:Verify activation worked:
source .venv/bin/activatedoes nothing- Commands still use system Python
- Package installations go to wrong location
Missing dependencies or import errors
Missing dependencies or import errors
Symptoms:Install/reinstall dependencies:Check for conflicting installations:If still failing, clear pip cache:
ModuleNotFoundError: No module named 'google'ImportError: cannot import name 'build'- Scripts fail with import errors
OAuth and Authentication
OAuth browser window doesn't open
OAuth browser window doesn't open
Symptoms:Try manual OAuth flow:Check firewall settings:
setup_oauth.pyruns but no browser window appears- Script hangs waiting for authorization
- Port binding errors
- Allow Python to accept incoming connections
- Allow localhost connections on ephemeral ports
- Temporarily disable firewall for testing
Invalid client_id or client_secret
Invalid client_id or client_secret
Symptoms:Expected format:Get correct credentials from Google Cloud Console:
Error: invalid_clientFalta GOOGLE_CLIENT_ID o GOOGLE_CLIENT_SECRET- OAuth flow fails immediately
.env file exists and has correct values:- Go to console.cloud.google.com
- Navigate to APIs & Services > Credentials
- Find your OAuth 2.0 Client ID
- Download JSON and extract
client_idandclient_secret
- Delete old OAuth client in Google Cloud Console
- Create new OAuth 2.0 Client ID
- Update
.envwith new values - Run
setup_oauth.py --regenerate
Refresh token invalid or expired
Refresh token invalid or expired
Symptoms:This will:
Error: invalid_grant- “Token has been expired or revoked”
- API calls fail with 401 Unauthorized
- Open OAuth flow in browser
- Generate new refresh token
- Update
GOOGLE_REFRESH_TOKENin.env
- Token manually revoked in Google account settings
- OAuth consent screen moved from Testing to Production
- Client secret was regenerated
- More than 50 refresh tokens issued (older ones expire)
- Don’t share
.envfile - Don’t commit refresh tokens to git
- Keep OAuth consent screen in Testing for personal use
Permission and Scope Issues
Missing required scopes
Missing required scopes
Symptoms:Regenerate token with all scopes:Verify scopes in OAuth consent screen:
Error: Insufficient Permission- “Request had insufficient authentication scopes”
- Features work partially but some fail
scripts/setup_oauth.py:- Go to Google Cloud Console
- APIs & Services > OAuth consent screen
- Check that all scopes are listed
- Add any missing scopes
- Regenerate token
- Calendar read:
calendar.readonly - Accept/decline events:
calendar.events - Meet transcription:
meetings.space.settings - Gmail:
gmail.readonly - Read transcripts:
documents.readonly
API not enabled in Google Cloud
API not enabled in Google Cloud
Symptoms:Common mistake: Enabling APIs in wrong project
Error: API not enabled- “Google Calendar API has not been used”
- 403 Forbidden errors
-
Google Calendar API:
- Go to console.cloud.google.com
- APIs & Services > Library
- Search “Google Calendar API”
- Click Enable
-
Google Meet API (for transcription):
- APIs & Services > Library
- Search “Google Meet API”
- Click Enable
-
Gmail API:
- Search “Gmail API”
- Click Enable
-
Google Docs API (for transcripts):
- Search “Google Docs API”
- Click Enable
- Ensure you’re in the same project as your OAuth credentials
- Check project ID matches in Console and
.env
Rate limiting or quota exceeded
Rate limiting or quota exceeded
Symptoms:Implement caching:
Error: Rate Limit Exceeded- “Quota exceeded for quota metric”
- Intermittent API failures
- Google Cloud Console
- APIs & Services > Dashboard
- View API metrics
- APIs & Services > Quotas
- Find the relevant API and metric
- Request quota increase (may require billing)
- Store results locally
- Only fetch new data since last run
- Use incremental sync where available
Configuration Issues
Configuration files not found
Configuration files not found
Symptoms:Create missing config files:Verify directory structure:Check file permissions:
FileNotFoundError: config/clients.yaml- Scripts can’t find config files
- Features don’t work as expected
YAML syntax errors
YAML syntax errors
Symptoms:Common YAML mistakes:Use a YAML validator online:
yaml.scanner.ScannerError- “mapping values are not allowed here”
- Config files not parsed correctly
- Copy file contents
- Paste into yamllint.com
- Fix reported errors
Client or project not matching
Client or project not matching
Symptoms:Test matching manually:Common issues:
- Events not appearing in client bitácoras
- Emails not assigned to correct client
- Projects showing as “Unknown”
config/clients.yaml:- Keywords are case-sensitive in some contexts (use lowercase)
- Need to match substring of event title or email subject
- Client folder name must match key in YAML
Runtime Errors
Morning routine fails partway through
Morning routine fails partway through
Symptoms:Check logs for specific error:Common causes:
- Script starts but crashes mid-execution
- Partial output then error
- Some features work, others don’t
- One API is down (skip and continue)
- Rate limit hit (wait and retry)
- Config file issue (check YAML syntax)
- Missing dependencies (reinstall requirements)
Transcription features not working
Transcription features not working
Symptoms:Ensure APIs are enabled:Test transcription import:If no transcripts found:
--add-transcription-reminderdoes nothing- No transcripts imported
- Meet API errors
- Google Meet API
- Google Docs API
- Verify meeting actually generated a transcript
- Check transcript is attached to calendar event
- Ensure event matches a client in
clients.yaml
Bitácoras not updating
Bitácoras not updating
Symptoms:Check client configuration:Test client matching:Common issues:See detailed guide: Client Bitácoras
- New meetings/emails don’t appear in bitácoras
- Bitácora files empty or outdated
- Client logs not being created
- Client name in YAML doesn’t match folder name
- Keywords don’t match event titles
- Events already in bitácora (duplicates skipped)
- File permissions prevent writing
Getting Help
If these solutions don’t resolve your issue:- Check the source code: All scripts include docstrings and comments
- Review error messages: They often indicate exactly what’s wrong
- Test with demo mode: Isolate whether issue is with APIs or local code
- Check file paths: Ensure you’re running from project root directory
- Verify Python version: Must be 3.8 or higher
Most issues are related to OAuth scopes, API enablement, or configuration file syntax. Double-check these areas first.