KeyError: Missing Environment Variable

KeyError: 'DATABASE_URL'

Quick Answer

You are accessing an unset environment variable with os.environ['KEY']. Use os.environ.get('KEY', 'default') for safe access or set the variable before running.

Why This Happens

os.environ behaves like a dictionary and raises KeyError for missing keys. Using os.environ.get() with a default value prevents the crash.

The Problem

import os
db_url = os.environ['DATABASE_URL']

The Fix

import os
db_url = os.environ.get('DATABASE_URL', 'sqlite:///local.db')

Step-by-Step Fix

  1. 1

    Use os.environ.get()

    Replace os.environ['KEY'] with os.environ.get('KEY', default).

  2. 2

    Set the variable

    Set it before running: export DATABASE_URL=... or use python-dotenv.

  3. 3

    Provide clear errors

    If required, check at startup and give a helpful error message.

Bugsly catches this automatically

Bugsly's AI analyzes this error pattern in real-time, explains what went wrong in plain English, and suggests the exact fix — before your users even report it.

Try Bugsly free