If you hit something not covered here, open an issue — we treat docs gaps as real bugs.Documentation Index
Fetch the complete documentation index at: https://docs.frankenpress.com/llms.txt
Use this file to discover all available pages before exploring further.
Pod symptoms
ErrImageNeverPull for the site pod
You set image.pullPolicy=Never (typical for kind dev) but the image
isn’t loaded into the cluster.
ImagePullBackOff on bitnami/* images
Bitnami withdrew their public Docker Hub images in 2025. The chart’s
default values point at bitnamilegacy/* — verify yours match. If you
override mariadb.image.repository etc., make sure the override still
exists.
CreateContainerConfigError: secret not found
The site pod references a Secret that doesn’t exist yet. Common causes:
- You set
keysSalts.existingSecretbut the named Secret hasn’t been created. Either create it (External Secrets Operator, kubectl, etc.) or setkeysSalts.autoGenerate: true. - You disabled a subchart (
mariadb.enabled: false) but didn’t supplyexternalDatabase.existingSecretfor the password. - Subchart resource naming mismatch — bitnami subcharts produce
<release>-<subchart>for their resources, not<release>-<our-chart>-<subchart>. Our_helpers.tplaccounts for this; if you’ve overriddennameOverrideorfullnameOverrideit might drift.
exec: frankenphp: Operation not permitted
You’re running with containerSecurityContext.allowPrivilegeEscalation: false against an fp-runtime image older than the setcap -r patch. Older images carry cap_net_bind_service=ep on the binary; the kernel refuses to exec under no_new_privs.
Fix: upgrade to a newer fp-runtime (the cap is stripped at build time on current images), or temporarily set allowPrivilegeEscalation: true in your values.
Cache symptoms
Souin returns stale content after save_post
The SouinInvalidator is supposed to DEL the cache key on save. If
content is stale beyond the TTL window:
- Verify Redis connectivity — exec into the site pod and try to ping Redis manually:
- Check the WP error log —
error_loglines from[FrankenPress\\SouinInvalidator]indicate connection or DEL failures. - Verify the cache key shape — Souin uses
GET-<scheme>-<host>-<path>. If the WP scheme/host returned byhome_url()differs from what Souin sees on the request, the keys diverge. SetWP_HOMEandWP_SITEURLto exactly the externally-visible URL (including scheme), and ensure the Ingress / HTTPRoute passesX-Forwarded-Protocorrectly.
Cache-Status: Souin; fwd=bypass; detail=UPSTREAM-ERROR-OR-EMPTY-RESPONSE
WordPress returned an empty response. Common causes:
- No theme installed —
roots/wordpressis no-content (no bundled themes). Make sure the site composer-installs at least one theme (fp-site-templateshipswpackagist-theme/twentytwentyfiveby default). - PHP fatal during request — check the site pod logs for stack traces.
- WP not yet installed — visit
/wp/wp-admin/install.phpand complete the install (or runwp core installviakubectl exec).
S3 symptoms
”FrankenPress: media uploads disabled” error in WP admin
S3UploadsBootstrap registered wp_handle_upload_prefilter to refuse
uploads. The chart’s ConfigMap is missing one of the required env vars
(FP_S3_BUCKET, FP_S3_KEY, or FP_S3_SECRET).
Check:
externalS3.*.
InvalidAccessKeyId from S3 SDK
The AWS SDK is hitting s3.amazonaws.com with credentials that don’t
exist there. Two common causes:
FP_S3_ENDPOINTnot honoured — fp-mu-plugin v0.1.0 had a bug where humanmade/s3-uploads’S3_UPLOADS_ENDPOINTconstant was defined but not applied to the SDK. Upgrade to v0.1.1 or later (the bake default infp-runtime).- Real AWS credentials misconfigured — verify
FP_S3_KEYandFP_S3_SECRETare correct, and the IAM principal hass3:GetObject/s3:PutObject/s3:DeleteObject/s3:ListBucketon the bucket.
Helm symptoms
INSTALLATION FAILED: ... namespace ... is being terminated
You uninstalled but the namespace is still deleting. Wait, then retry:
Error: looks like "..." is not a valid chart repository
You’re using OCI registry syntax (oci://...) on a Helm version older
than 3.8. Upgrade Helm: brew upgrade helm (or your platform
equivalent).
helm dependency update: image pull failure
Bitnami’s OCI registry occasionally rate-limits anonymous pulls. Run
helm dependency update again, or authenticate to the registry first
with helm registry login registry-1.docker.io.
WordPress symptoms
Bedrock-autoloader DB errors during wp core install
You’ll see error lines like:
wp core install because
roots/bedrock-autoloader tries to write its discovery cache to
wp_options before WP creates the table. The install completes
successfully despite the noise; subsequent boots are clean. Not
blocking; ignore.
”Update WordPress” button is grayed-out / missing
This is by design. The lockdown constants (DISALLOW_FILE_MODS,
AUTOMATIC_UPDATER_DISABLED) are hard-coded in config/application.php
and config/environments/production.php. Updates go through image
rebuilds — see Upgrading.