diff --git a/src/pretix/presale/templates/pretixpresale/event/base.html b/src/pretix/presale/templates/pretixpresale/event/base.html
index 984410d3b1..a28367bf70 100644
--- a/src/pretix/presale/templates/pretixpresale/event/base.html
+++ b/src/pretix/presale/templates/pretixpresale/event/base.html
@@ -9,7 +9,7 @@
{% load anonymize_email %}
{% block thetitle %}
{% if messages %}
- {{ messages|join:" " }} ::
+ {{ messages|join:" " }} ::
{% endif %}
{% block title %}{% endblock %}{% if request.resolver_match.url_name != "event.index" %} :: {% endif %}{{ event.name }}
{% endblock %}
@@ -26,6 +26,7 @@
{% if event.settings.google_site_verification %}
{% endif %}
+
{{ block.super }}
{% endblock %}
{% block above %}
diff --git a/src/pretix/static/pretixpresale/js/csrfcookieretry.js b/src/pretix/static/pretixpresale/js/csrfcookieretry.js
new file mode 100644
index 0000000000..e6bc3c1c9f
--- /dev/null
+++ b/src/pretix/static/pretixpresale/js/csrfcookieretry.js
@@ -0,0 +1,13 @@
+document.addEventListener("DOMContentLoaded", () => {
+ const COOKIE_NAME = "__Host-pretix_csrftoken";
+ const RELOAD_FLAG = "csrfReloadPerformed";
+
+ const hasCookie = document.cookie
+ .split("; ")
+ .some((c) => c.startsWith(COOKIE_NAME + "="));
+
+ if (!hasCookie && !sessionStorage.getItem(RELOAD_FLAG)) {
+ sessionStorage.setItem(RELOAD_FLAG, "1");
+ location.reload();
+ }
+});