Rebounder Tech Blog

Written by the people who actually run these systems in production.

Find it by the error string

The error you typed into the search box may be right here.
Everything listed actually appeared in our own production systems.This is not a list assembled from guesswork.

Constants & code

FLAG_KEEP_SCREEN_ON
insetsController Is null Before setContentViewOne startActivity Is Not Enough to Blank a Kiosk ScreenAn Android Foreground Service Can Die Without CrashingFLAG_KEEP_SCREEN_ON Not Working on Android: The Screensaver
NODE_ENV
Missing frame-src in CSP Blocks YouTube, Kills Watch LogsA New httpOnly Cookie 401s Only Already-Logged-In Userspdfjs-dist standard_fonts Missing in Next.js standalone
EMPTY_PLAN
Remounting a Form by key Resets Uncontrolled InputsHalf-Controlled Forms Silently Revert on Resubmit
SEED_AD_MEDIA_BASE
A staging Default in env Deleted Production ImagesNoSuchBucket: Destroying Staging Broke Prod Ad Images
ADMIN_API_KEY
proxy.ts Redirected API-Key Endpoints to the Login Page
ANON_SIGNAGE_DATE_SLACK_DAYS
Valid Token, Wrong Scope: an IDOR via design/date Parameters
APP_ENV
LIMIT 1 Without ORDER BY Returns Another Tenant
APP_URL
Auth Middleware Redirects robots.txt to the Login Page
AUDIT_FK_SQL
RLS Allowing actor_user_id NULL Erases Audit Trails
AUDIT_LOG_ACTOR_NULL_SQL
RLS Allowing actor_user_id NULL Erases Audit Trails
AUDIT_TRIGGER_SQL
RLS Allowing actor_user_id NULL Erases Audit Trails
BEHAVIOR_SHOW_TRANSIENT_BARS_BY_SWIPE
insetsController Is null Before setContentView
BENIGN_STT_ERROR_CODES
Telling not-allowed From no-speech in SpeechRecognition
BOOT_COMPLETED
dpm set-device-owner Launches the App Before prefs Is Set
CARD_INVOICE_FALLBACK_DAYS
amount_unset: Stripe's 7-Day Auto-Switch Never Fires
CHAT_DAILY_LIMIT_PER_SCHOOL
maxOutputTokens Was Missing, So Usage Had No Ceiling
CHAT_MAX_OUTPUT_TOKENS
maxOutputTokens Was Missing, So Usage Had No Ceiling
CHECKOUT_EXPIRY_BUFFER_SECONDS
Stripe Checkout Session expires_at: 24h Default Holds Seats
CHECKOUT_HOLD_MINUTES
Stripe Checkout Session expires_at: 24h Default Holds Seats
CHECKOUT_SESSION_ID
Stripe Checkout Session expires_at: 24h Default Holds Seats
CLOUDSDK_PYTHON
gcloud ADC Expires After ~44h: Reauthentication failed Fix
COOKIE_NAME
A New httpOnly Cookie 401s Only Already-Logged-In Users
DATABASE_URL
Missing passThroughEnv Skips Tests While CI Stays Green
DEFAULT_ORPHAN_HOURS
supabase-js .range() Without .order() Drops Rows
DEFAULT_TARGET_MAC
ScanFilter.setDeviceAddress Throws on the String \"null\"
DEV_LOGIN_CONFIG
LIMIT 1 Without ORDER BY Returns Another Tenant
DEVLOGIN_TEST
LIMIT 1 Without ORDER BY Returns Another Tenant
DEVLOGIN_TEST_SCHOOL_ID
LIMIT 1 Without ORDER BY Returns Another Tenant
EMAIL_RE
\"An invalid form control is not focusable\": Hidden Steps
EMBED_BATCH_SIZE
A Non-Numeric env Becomes NaN and Slips Past ??
EMPTY_DRAFT
Half-Controlled Forms Silently Revert on Resubmit
FEED_MEXT
Duplicate URLs in a Feed Break ON CONFLICT DO UPDATE
FILE_PATH_PAGE
supabase-js .range() Without .order() Drops Rows
FLAG_ACTIVITY_CLEAR_TOP
One startActivity Is Not Enough to Blank a Kiosk Screen
FLAG_ACTIVITY_NEW_TASK
One startActivity Is Not Enough to Blank a Kiosk Screen
FLAG_FULLSCREEN
insetsController Is null Before setContentView
FLAG_SHOW_WHEN_LOCKED
insetsController Is null Before setContentView
GEMINI_THINKING_BUDGET
Gemini Thinking Tokens Eat maxOutputTokens
GOOGLE_CSE_ID
Google Custom Search API 403: Switched to Brave Search API
GOOGLE_CSE_KEY
Google Custom Search API 403: Switched to Brave Search API
HARD_LIMIT
Google Custom Search API 403: Switched to Brave Search API
IMG_1234
A Poster's Title Shows Up as IMG_1234 on the Classroom TV
ISO_DATETIME_RE
Only the Poll Stringifies Date: getTime Is Not a Function
ITEM_A
Duplicate URLs in a Feed Break ON CONFLICT DO UPDATE
ITEM_B
Duplicate URLs in a Feed Break ON CONFLICT DO UPDATE
JSON_MEDIA_TYPE
ScanFilter.setDeviceAddress Throws on the String \"null\"
KEY_TARGET_MAC
ScanFilter.setDeviceAddress Throws on the String \"null\"
KIMITERRACE_TEST_DB_OK
Missing passThroughEnv Skips Tests While CI Stays Green
MACHINE_NAME_PATTERNS
A Poster's Title Shows Up as IMG_1234 on the Classroom TV
MAX_DELETE_PER_RUN
supabase-js .range() Without .order() Drops Rows
MAX_POSTER_TITLE_LENGTH
A Poster's Title Shows Up as IMG_1234 on the Classroom TV
MAX_TOTAL_UPLOAD_BYTES
Next.js Server Actions bodySizeLimit: Raising Isn't Enough
MIN_ORPHAN_HOURS
supabase-js .range() Without .order() Drops Rows
MIN_TEACHER_PASSWORD_LENGTH
auth/invalid-password: App Allowed Shorter Passwords
MODE_PRIVATE
ScanFilter.setDeviceAddress Throws on the String \"null\"
NEXT_RUNTIME
pdfjs-dist standard_fonts Missing in Next.js standalone
NOTICE_ASSIST_STREAM_SYSTEM
Aborting streamObject Leaves usage as an Unhandled Rejection
PAGE_CASES
Fixing a detect-non-literal-regexp False Positive
PATTERN_BLOCKS
Hand-Built Preview Payload Drifts From the Device
PDF_MEDIA_TYPE
Routing Scanned PDFs to Gemini by Chars per Page
PIN_C10
What Stops You First in Quartus Is the Setup
PREFS_NAME
ScanFilter.setDeviceAddress Throws on the String \"null\"
PRESET_FIELDS
Remounting a Form by key Resets Uncontrolled Inputs
PUBLIC_LOOP_COLS
start_month Missing Lets a Contract's Period Go NULL
PUBLISHER_ROLES
Narrowing a Page's Roles Left the Action's Gate
QUOTA_PROJECT
gcloud ADC Expires After ~44h: Reauthentication failed Fix
RAILWAY_FETCH_TIMEOUT_MS
A Non-Numeric env Becomes NaN and Slips Past ??
RESEND_API_KEY
Next.js Build Breaks on a Module-Level Resend Client
RESTART_COOLDOWN_MS
An Android Foreground Service Can Die Without Crashing
RLS_ENABLE_SQL
RLS Allowing actor_user_id NULL Erases Audit Trails
RLS_POLICIES_SQL
RLS Allowing actor_user_id NULL Erases Audit Trails
RLS_TESTS_SKIP
Missing passThroughEnv Skips Tests While CI Stays Green
SCANNED_PDF_MAX_NONWS_CHARS_PER_PAGE
Routing Scanned PDFs to Gemini by Chars per Page
SCHOOL_ID
Removing a Role-Change Seam With No Callers Left
SDK_INT
insetsController Is null Before setContentView
SEMGREP_RULES
semgrep --config=auto Turns main Red, No Code Changed
SERVICE_DISABLED
gcloud ADC Expires After ~44h: Reauthentication failed Fix
SOFT_LIMIT
Google Custom Search API 403: Switched to Brave Search API
STALE_THRESHOLD_MS
An Android Foreground Service Can Die Without Crashing
STANDARD_FONT_FILE_RE
pdfjs-dist standard_fonts Missing in Next.js standalone
STREAM_STALL_MS
Aborting streamObject Leaves usage as an Unhandled Rejection
SYSTEM_ADMIN_ROLES
Narrowing a Page's Roles Left the Action's Gate
SYSTEM_ALERT_WINDOW
One startActivity Is Not Enough to Blank a Kiosk Screen
TTL_MS
A New httpOnly Cookie 401s Only Already-Logged-In Users
VERSION_CODES
insetsController Is null Before setContentView
WRITE_SECURE_SETTINGS
FLAG_KEEP_SCREEN_ON Not Working on Android: The Screensaver
WRITE_SETTINGS
FLAG_KEEP_SCREEN_ON Not Working on Android: The Screensaver

PostgreSQL

23505
A 23503 FK Violation Disguised as a ConflictA Ledger INSERT Failure Swallowed as a DuplicateA Conditional UPDATE Needs error, Not Just data
23503
Only system_admin Hits The Audit Log Foreign Key ConstraintA 23503 FK Violation Disguised as a Conflict
23514
A 23503 FK Violation Disguised as a Conflict

Exceptions & failures

TypeError
Only the Poll Stringifies Date: getTime Is Not a FunctionNext.js Bundling a wasm Package Breaks Only in Production
CancellationException
An Android Foreground Service Can Die Without Crashing
DrizzleQueryError
A 23503 FK Violation Disguised as a Conflict
ForbiddenError
Narrowing a Page's Roles Left the Action's Gate
IllegalArgumentException
ScanFilter.setDeviceAddress Throws on the String \"null\"
LegacyContentConfigError
Astro 7 Breaks Content Collections in Three Places
SecretsAccessCheckFailed
Enabling a Cloud Run Job Fails With SecretsAccessCheckFailed
SecurityException
FLAG_KEEP_SCREEN_ON Not Working on Android: The Screensaver
StripeCardError
A Post-Charge DB Failure Read as a Card Decline
UnauthenticatedError
Narrowing a Page's Roles Left the Action's Gate
UnknownErrorException
pdfjs-dist standard_fonts Missing in Next.js standalone

Firebase

auth/admin-mutations
Removing a Role-Change Seam With No Callers Left
auth/invalid-password
auth/invalid-password: App Allowed Shorter Passwords
auth/update-password
proxy.ts Redirected API-Key Endpoints to the Login Page
auth/weak-password
auth/invalid-password: App Allowed Shorter Passwords

PostgREST

PGRST116
Supabase maybeSingle() PGRST116: Multiple Rows Returned
PGRST201
Google Custom Search API 403: Switched to Brave Search API

This index is extracted mechanically from the article bodies. It grows as articles are added.