Operations | Monitoring | ITSM | DevOps | Cloud

Grape's error! Inside a Transaction Commits Your Data. Grape 4.1 Fixes It.

If your Grape API calls error! inside an Active Record transaction, the client gets an error response and the database keeps the writes. No exception, no warning, no rollback. The request looks failed from the outside and succeeded on the inside. A fix merged into Grape on October 3 and is queued for Grape 4.1.0. It’s not released yet, so every current Grape version still behaves this way. Here’s why it happens, how to check whether you’re affected, and what changes when 4.1 ships.

On SQLAlchemy 2.1.0 or 2.1.1, Fixing an N+1 Could Change Your Results

The standard fix for an N+1 query in SQLAlchemy is to eager load the relationship with selectinload(). On SQLAlchemy 2.1.0 and 2.1.1, that fix can change your results. A regression in those two releases makes selectinload() ignore part of the join condition on some many-to-many relationships. The query gets faster, and it also returns related rows that the relationship was defined to exclude. It’s fixed in 2.1.2, released October 2.

FastAPI 0.142 Turns On OpenTelemetry by Default. Here's What It Records.

FastAPI 0.142.0 ships with OpenTelemetry built in. Install fastapi, set one environment variable, and every request produces a trace, metrics, and error logs. No middleware, no instrumentation package, no code. That’s a big change for a framework most Python teams instrument by hand. It’s also easy to misread. The defaults record more than some teams expect in one place, and less than others assume in another. Here’s what you actually get.

Best Monitoring Tools With MCP Servers for AI Coding Agents (2026)

Your AI coding agent can read your code, run your tests, and open a pull request. Until recently it could not see what that code does in production. MCP servers from monitoring vendors close that gap. Connect one, and Claude Code, Cursor, or Copilot can pull the error, the trace, and the slow query behind a bug report without you copying anything out of a dashboard. Most major monitoring vendors now offer an official MCP server. But they aren’t interchangeable. Some only expose errors.

Every 404 in Your Rails App Might Be Allocating 13 MB

A bot requests /wp-login.php on your Rails app. Rails can’t route it, raises ActionController::RoutingError, and returns a 404. That should cost almost nothing. On a Rails 8.1 app with a few thousand compiled templates, it can cost 13 MB of allocations and 27 ms of CPU. A detailed report on rails/rails#58887 traces the cost to one method, ActionDispatch::ExceptionWrapper#build_backtrace.

Starlette 1.7.0 Brings Native Tracing and Smarter Route Naming

If you’re running FastAPI, you’re running Starlette underneath it, whether you think about it or not. At Scout, we spend a lot of time thinking about what happens at that ASGI layer, since that’s exactly where our Python agent hooks in to give you request-level visibility. Starlette 1.7.0 just landed, and it’s a release worth reading closely if you care about tracing, routing, or just keeping your app running on a supported dependency chain.

Anomaly Detection Is Now Generally Available

You set a threshold alert on a checkout endpoint at 500ms. It pages you every Monday at 9am, when traffic doubles and nothing is actually wrong. You raise the threshold to 800ms to make the noise stop. Three weeks later a real regression creeps in at 650ms, and nobody gets paged, because you tuned the alert to survive Mondays instead of to catch problems.

Prompts, skills, and the AGENTS.md nobody wants to write (and how Anthropic writes theirs)

You’ve watched Claude Code compact a conversation. The context bar fills, it pauses, a summary appears, and it carries on like nothing happened. You probably assumed a housekeeping script trimmed the transcript in the background. It didn’t. The model compacted itself. When the window fills, Claude Code sends a long, specific prompt telling the model how to summarize its own conversation. Then it does, same model, same turn. The thing managing your context window is just another instruction.