Guides
Troubleshooting
Debug common issues such as missing targets, CSRF failures, route conflicts, and view transition expectations.
This page focuses on the practical details. Use the quick links below to move to the previous, next, or related docs.
This guide shortens the feedback loop when integrating progressive interactions. It focuses on failure modes teams hit most often in production rollouts.
Action returns full page on back/forward
Symptoms:
- popstate shows partial/action payload instead of full page shell
Checks:
- ensure you are using Hyper action responses with no-cache headers
- verify reverse proxy/CDN is not caching action endpoints
Target swap does nothing
Symptoms:
- action succeeds but DOM is unchanged
Checks:
- confirm target selector exists at swap time
- ensure returned HTML is non-empty for swap modes that require HTML
CSRF failures on POST actions/forms
Checks:
- keep Django CSRF middleware enabled
- include
{% csrf_token %}in forms - ensure CSRF cookie is present for authenticated pages
- if using CSP/meta-only flow, expose
meta[name='csrf-token']
View transition not visible
Checks:
- browser must support
document.startViewTransition - server response must set
transition: true hyper-view-transition-nameonly labels transition parts; it does not enable transitions alone
Duplicate or stale form fragments after swaps
Checks:
- keep IDs unique in replaced fragments
- prefer stable container target (for example
#profile-panel) forouter/innerswaps - avoid returning nested duplicate roots for the same target
Route conflict error at startup
Checks:
- inspect
python manage.py hyper_routes - remove equivalent route shapes (for example
[slug]and[id]in same path level) - remove group-colliding paths (
(group)/xvsx)
runserver does not reload after editing hyper/*
Checks:
- ensure
hyperdjangois inINSTALLED_APPS - ensure
HYPER_FRONTEND_DIRpoints to the directory you edit - restart
runserveronce after changing settings - verify you are using Django
runserverautoreload (not a custom process manager without reload)
Page navigation