Skip to content

Troubleshooting Guide

Find solutions to common FraiseQL issues organized by category.

By Problem Type:

By Symptom:


“Connection refused”

“Too many connections”

“Connection timeout”

  • Database is overloaded or unreachable
  • Check database CPU/memory
  • Check network latency: ping database.host
  • Reduce PGBOUNCER_CONNECTION_TIMEOUT

“Invalid token”

“Missing Authorization header”

  • Query requires authentication but header missing
  • Verify client sends: Authorization: Bearer <token>
  • Check authorization middleware is enabled

“Insufficient permissions”

“Field validation failed”

  • Input doesn’t match schema
  • Check field types: String, Int, ID, Boolean, DateTime
  • Check field constraints: required, max length, format
  • Review Validation Rules Reference

“Type mismatch”

  • Field type doesn’t match schema definition
  • Check query matches GraphQL schema
  • Run introspection query to see current schema
  • See Type System Concepts

“Query returns null/empty but should have data”

  • Check filtering isn’t too restrictive
  • Verify data actually exists in database: SELECT COUNT(*) FROM table
  • Check row-level security (RLS) isn’t filtering data
  • See Common Issues: Empty Results

“Related objects are null”

“Mutation runs but data doesn’t change”

  • Check mutation is committing: BEGIN; ... COMMIT;
  • Check database triggers aren’t blocking
  • Verify user has write permission
  • See Common Issues: Silent Failures

“Mutation succeeds but related data unchanged”

  • Related records might be in different database
  • See Federation documentation
  • Check cascade rules in database
  • Run mutation in transaction

“Queries started slow suddenly”

  • Database might be full
  • Check disk space: df -h
  • Check database statistics need updating: ANALYZE
  • See Performance Issues

“Intermittent slow queries”

  • Connection pool saturation
  • Database load spikes
  • Network latency
  • Check monitoring dashboards (CloudWatch, Datadog, Prometheus)

“Container won’t start”

  • Check logs: docker logs <container>
  • Check environment variables: docker exec <container> env
  • Check network: docker network ls
  • See Docker Deployment Guide

“Connection to database fails”

  • Verify database container is running: docker ps
  • Check service name in DATABASE_URL matches docker-compose.yml
  • Verify network isolation: docker network inspect <network>
  • See Docker Troubleshooting

“Pod won’t start (CrashLoopBackOff)”

  • Check pod logs: kubectl logs <pod>
  • Check events: kubectl describe pod <pod>
  • Verify resource requests fit in cluster
  • See Kubernetes Troubleshooting

“Service unreachable”

  • Check service exists: kubectl get svc
  • Check endpoints: kubectl get endpoints
  • Test with port-forward: kubectl port-forward svc/fraiseql 8000:8000
  • See Kubernetes Troubleshooting

See AWS Troubleshooting for ECS, Fargate, and RDS-specific issues.


For database-specific troubleshooting, refer to the guides for your database engine. Common database issues include connection pool exhaustion, slow queries from missing indexes, and lock contention under high concurrency.


Terminal window
# Test API health
curl http://localhost:8000/health/live
# Test readiness
curl http://localhost:8000/health/ready
# View logs
docker logs fraiseql
# Check environment
docker exec fraiseql env | grep DATABASE
Terminal window
psql postgresql://user:pass@host/db -c "SELECT 1"
pg_isready -h host -U user
Terminal window
# DNS resolution
nslookup database.example.com
# Network latency
ping database.example.com
# Port connectivity
nc -zv database.example.com 5432
# Full connection test
timeout 5 bash -c 'cat </dev/null >/dev/tcp/host/5432' && echo "OK" || echo "FAIL"
Terminal window
# Prometheus metrics
curl http://localhost:9000/metrics | grep fraiseql
# Database connections (PostgreSQL)
SELECT datname, count(*) FROM pg_stat_activity GROUP BY datname;
# Database connections (MySQL)
SHOW PROCESSLIST;

  1. Check logs - Most issues are visible in logs

    Terminal window
    LOG_LEVEL=debug fraiseql run
  2. Search documentation - Use Ctrl+F on this page

    • Try searching error message
    • Try searching symptom (e.g., “slow”, “connection”)
  3. Check existing issues - GitHub issues might have solution

  4. Test in isolation - Narrow down the problem

    Terminal window
    # Minimal reproduction
    curl -X POST http://localhost:8000/graphql \
    -H "Content-Type: application/json" \
    -d '{"query": "{ __schema { types { name } } }"}'

Discord (Real-time chat)

GitHub Discussions (Archived answers)

GitHub Issues (Bug reports)

Stack Overflow (Searchable)

  • Tag: fraiseql
  • For best-practice questions

When reporting an issue, include:

  1. FraiseQL version

    Terminal window
    fraiseql --version
  2. Error message (full traceback)

    Traceback (most recent call last):
    ...
  3. Minimal reproduction (simplified code that shows issue)

    @fraiseql.query
    def broken_query() -> User:
    pass
  4. Environment

    • OS (Linux, macOS, Windows)
    • Python version
    • Database (PostgreSQL 16, MySQL 8.0, etc.)
    • Deployment (Docker, Kubernetes, bare metal)
  5. Logs (with LOG_LEVEL=debug)

    [DEBUG] Loading schema...
    [ERROR] Failed to execute query

  • What exactly is happening?
  • When did it start?
  • Is it consistent or intermittent?
  • Check logs: docker logs fraiseql
  • Check database: SELECT COUNT(*) FROM table
  • Check configuration: printenv | grep FRAISEQL
  • Check metrics: CPU, memory, disk space
  • Search this troubleshooting guide
  • Search GitHub issues
  • Search Discord history
  • Check relevant deployment/database guide
  1. Restart application
  2. Check network connectivity
  3. Check database availability
  4. Review configuration
  5. Check permissions
  • Follow step-by-step instructions
  • Verify fix worked
  • Document what worked
  • If stuck, ask on Discord/GitHub
  • Include all diagnostic info from Step 2
  • Include minimal reproduction from Step 3

IssueSolutionTime
”Connection refused”Check database running2 min
”Too many connections”Increase connection pool5 min
Slow queriesAdd database indexes10 min
”Insufficient permissions”Check user role5 min
Empty resultsCheck filtering/RLS5 min
Type mismatchCheck schema definition3 min
Pod crashesCheck resource limits5 min
High CPUCheck query complexity15 min

Performance Guide

Diagnose slow queries, high latency, and database bottlenecks. Performance Issues

Deployment Guides

Platform-specific troubleshooting for Docker, AWS, GCP, and Azure. Deployment Overview

Error Handling

Best practices for handling errors gracefully in FraiseQL applications. Error Handling Guide