site hosts and contact forms

Technical Postmortem: Analysis of Limited Contact Form Support in Web Hosting Services Summary Web hosts frequently offer limited native contact form solutions despite their ubiquity Insufficient form functionality stems from security, cost, and architectural constraints Customers experience friction between convenience and customization needs Industry alternatives favor third-party integrations over native implementations Root Cause Technical constraints … Read more

Best practices to harden a Python experiment hook that triggers an external quota increase

Best practices to harden a Python experiment hook that triggers an external quota increase Summary A minimal Python experiment hook randomly assigned users to control/treatment groups and called an external quota service. Production incidents occurred where duplicate quota increases, inconsistent assignment state, and traffic spikes caused: Permanent quota over-allocation to treated users Experiment group contamination … Read more

Method not found: ‘Void Microsoft.IdentityModel.Tokens.TokenValidationResult..ctor

# Technical Postmortem: MissingMethodException in Blazor Web App During OIDC Token Validation ## Summary A Blazor Web App targeting .NET 9.0 failed during authentication with a `System.MissingMethodException` when calling `OpenIdConnectHandler.ValidateTokenUsingHandlerAsync()`. The application crashed at startup due to an incompatible version of `Microsoft.IdentityModel.Tokens`, specifically related to the `TokenValidationResult` constructor signature. Key details: – Exception: `Method not … Read more

Is robot framework able to test that something is *not* happening?

# Postmortem: Handling Negative Assertions in Robot Framework for MQTT Event Verification ## Summary A critical gap was identified in automated tests for an IoT lighting system: Robot Framework had no explicit mechanism to confirm the **absence** of an expected MQTT message within a defined time window during night-mode operations. This led to incomplete verification … Read more

How to make a SQL query on a field which can be NULL and values, and only chose the largest value if possible

# Postmortem: Incorrect Handling of NULL in SQL MAX Queries ## Summary An incorrect SQL query attempted to retrieve records with the largest non-NULL value in column `fd`, falling back to NULL values when no non-NULL data existed. The query failed due to improper NULL handling in comparison logic, yielding no results when NULL values … Read more

Django Docker production solutions

# Production Incident: Worker Timeouts After Migrating Django App From runserver to Gunicorn ## Summary A Django application migrated from `runserver` to Gunicorn in Docker production experienced intermittent HTTP worker timeouts (`WORKER TIMEOUT`), resulting in incomplete data processing during TMDB API integrations. Development server worked without issues. Quick fix was reverting to `runserver`. ## Root … Read more

How to programmatically scroll to the top of a lengthy text in a customized JDialog?

# Postmortem: JDialog Scroll Position Misfire When Displaying Lengthy Text ## Summary A customized `JDialog` designed to display lengthy text consistently opened scrolled to the bottom despite multiple attempts to programmatically reset the scroll position to the top. Attempted solutions like setting view position, scrollbar value, and `scrollRectToVisible` failed to correct initial positioning. ## Root … Read more

Change all relative paths

# Postmortem: Improper Relative Path Rewriting Caused Broken Asset Loading ## Summary A user script (Tampermonkey) was deployed to rewrite relative paths on a web page to point to a new domain (`www.mypage.com`). Absolute paths were meant to be preserved. The script incorrectly modified some absolute paths and mishandled relative path resolution, causing CSS/JS files … Read more

How to set journaling mode in Python 3.12 and Sqlite3 with autocommit=False

# How to Set Journaling Mode in Python 3.12 and SQLite3 with autocommit=False ## Summary Attempts to set SQLite’s journaling mode (e.g., `PRAGMA journal_mode = WAL`) fail with `OperationalError` when opening a connection with `autocommit=False` in Python 3.12. This occurs because an implicit transaction starts immediately, preventing journal mode changes within a transaction. ## Root … Read more

Initializer for saving request data with uninitialized constant

# Initializer for Saving Request Data with Uninitialized Constant ## Summary A Rails initializer attempted to subscribe to controller events using `ActiveSupport::Notifications` and create `RequestLog` records. The `RequestLog` constant was unavailable during initialization, causing `NameError: uninitialized constant RequestLog` failures. ## Root Cause – The `request_logging.rb` initializer executes **before** Rails loads application classes – `RequestLog` model … Read more