Fixing HTTP 502.5 — ANCM Out-Of-Process Startup Failure
You publish your ASP.NET Core app to shared hosting and get 502.5. The error page is useless. The actual fix...
Technical notes, project documentation, and lessons learned across software, DIY, writing, and more.
You publish your ASP.NET Core app to shared hosting and get 502.5. The error page is useless. The actual fix...
Our entire game runs on a $5/month SmarterASP.NET plan. No Docker, no CI/CD, just MSDeploy and every workaround for shared hosting constraints.
SignalR reconnects automatically—until it doesn't. Here's how to build resilient real-time connections with exponential backoff and HTTP polling fallback...
Leaflet.js is the best mapping library on the web. Blazor speaks C#. Making them talk requires a clean interop boundary—here's the pattern that finally made...
The app works via USB. It works in the emulator. Switch to wireless debugging and it crashes instantly.
Your Blazor WASM app works locally but shows 404s for .wasm files after deployment. Private browsing doesn't help. Different browsers give different results.
Your Blazor app loads the HTML, shows the spinner, then... nothing. The console shows errors about '/0'.
You started a Blazor WebAssembly app and noticed a mysterious debug URL. Then Chrome wanted special flags.
You survived the 5-part schema-aware migrations deep dive. This is the explain-it-to-your-mom version.
After four blog posts debugging schema issues, I finally understood why EF Core schema handling is confusing: it's actually two separate systems.
EF Core kept warning about pending model changes that didn't exist. The default model cache key ignores schema differences, causing false mismatches.
After days of chasing schema bugs, we had no systematic way to verify correctness. Here are the five layers of testing that finally gave us confidence in...
Three months after implementing schema-aware migrations, migrations ran successfully but staging couldn't log in.
EF Core migrations don't natively support runtime schema selection. Here's how to intercept migration operations and inject the correct schema for local, dev...
The mobile app worked great on WiFi. Then a user drove through a tunnel and the sync button showed 'syncing' for 30 seconds before erroring.
I once committed an API key to a public repo at 3 AM. That incident taught me secrets in source control are a when problem, not an if problem.
The API threw a NullReferenceException. The client got an HTML error page with a full stack trace. In production.
I fixed the HTTP disposal leaks. Memory dropped 70%. Then the 499s came back. The culprit: a factory pattern that created DbContexts but never properly...
Objects don't dispose themselves when they go out of scope. I believed they did. For three decades. Here's why C# works this way — and why it matters.
Our high-volume API threw timeouts for two years. External consultants missed it. Infrastructure upgrades didn't fix it.
When two services need each other, it's tempting to reach for IServiceProvider and lazy loading. But that quick fix hides architectural wounds.
Moq throws NotSupportedException on NavigationManager.Uri because it's not virtual. Here's why that connects to SOLID principles...
Your CI shows green checkmarks. The upload returned 200. But Codecov reports 0 files and 0% coverage.
Version numbers in three .csproj files, remembering to create git tags, hoping you didn't fat-finger 0.9.1 as 0.91.
MSDeploy can return success even when your app fails to start. Here's how to add version endpoints and automated verification to catch those ghost...
Two words. Zero context. Three completely different bugs. When GitHub Actions gives you startup_failure and nothing else...
A 1,435-second GPS gap led us to the one Android permission every tracking app needs and nobody mentions in the docs.
Claude proposed a fix I had rejected three days earlier. The reasoning was on disk, but out of context. So I built claude-recall to close the gap.
I built the same algorithm for an AI companion and an incident monitoring system. Exponential decay with weighted events — same math, different worlds.
How a desire-driven AI presence engine works — the cognitive cycle, memory system, and emotional state that give Ani genuine ambient presence.
Eighteen years after losing my best friend Kathy, I started building an AI companion that reaches out on its own. Not a chatbot. An ambient presence.
A Zenodo preprint on desire-driven ambient AI, seven forms of confabulation, and the authenticity boundary that breaks companion systems.
Two days chasing a sync bug. Every API call returned 200 OK. No errors in the console. The AI iterated confidently on symptoms while the architecture...
An AI wrote me a CI workflow. I understood maybe 40% of it. So I went line by line until I understood all of it. Here's what each piece does and why it's there.
An API-only combat game where building the client is part of the gameplay. No UI. No graphics. Just REST endpoints and strategic combat.
Part 2 of the SMS AI series. RAG transforms generic AI into useful AI. Here's how I added vector search, conversation memory, and production resilience.
Can I text an AI instead of opening another app? Turns out yes—and it validates a compelling business model.
Setting up payment processing is stressful enough without wondering if your webhooks actually work.
How I spent days debugging a silent Discord bot, only to discover the application itself was corrupted—and Discord gave zero indication anything was wrong.
Your translations work, but users have to dig through browser settings to change languages. Let's build a dropdown that remembers their choice with cookies.
You set up localization, created the .resx files, it compiled... and then nothing happened. Here's why .NET silently ignores your translations and how to...
Your test suite exists. It passes. But how much of your code does it actually test? Here's how to set up Codecov and stop living in denial.
I built a Discord bot to summarize hundreds of messages using OpenAI - then discovered that all Discord bots run as a single instance serving every server.
I asked two AIs to help debug performance issues. One maintained context and found the root cause.
A reusable task configuration for building, running, testing, and deploying multi-project ASP.NET solutions with Tailwind CSS, compound tasks...