shaare.it

RuntimeError: No application found. Push an application context

7 Dec 2025

1 min read

RuntimeError: No application found. Push an application context

$ python - <<'PY'
from flask import Flask, url_for
app = Flask(__name__)
print(url_for('index'))
PY
Traceback (most recent call last):
  File "<stdin>", line 3, in <module>
  File "/.../flask/helpers.py", line ..., in url_for
RuntimeError: Working outside of application context.

Why this happens

Flask requires an application context to access app-specific data (configuration, URL map). Calling helpers like url_for, current_app, or g without a context raises RuntimeError.

Fix

  • Use with app.app_context(): around code that uses app-specific helpers outside of request handlers.
  • In tests, use app.test_request_context() to simulate a request and URL building.
  • Avoid running such code at import-time.

Wrong code

from flask import url_for
links = [url_for('index')]  # At import time, no context

Fixed code

from flask import url_for
from yourapp import app

def build_links():
    with app.app_context():
        return [url_for('index')]

Test example:

with app.test_request_context('/'):
    assert url_for('index') == '/'

Push contexts when using Flask helpers outside request handlers to avoid RuntimeError.