News
Backstage v1.50.0 landed as a stable release on April 14 with several breaking changes. The full BackstageCon Amsterdam 2026 recordings went live on YouTube, and ING Bank announced plans to open-source their "Golden Path" and "Contributions Plugin." We published a technical deep dive on context engineering, examining why production AI systems fail when all context is routed through vector retrieval. The community discussed new frontend system migration challenges, proposed an Entity Patch plugin for direct catalog updates, and welcomed a new TechDocs contributor after KubeCon.

Backstage v1.50.0 stable release with breaking changes
Backstage v1.50.0 landed on April 14 as a stable release. This release includes several breaking changes that teams should review before upgrading, including changes to identity token ownership claims, the removal of deprecated APIs, and updates to Backstage UI components.
Key breaking changes include the identity token ownership claim being removed by default (reducing token size), Standard Schema replacing the deprecated createSchemaFromZod helper, and React 18 becoming the minimum supported version. See the full release notes and v1.50.0 migration documentation for detailed upgrade instructions.
BackstageCon Amsterdam 2026 recordings available, ING Bank to open-source plugins
The full BackstageCon Amsterdam 2026 YouTube playlist went live on April 14. The community had been waiting for the complete set of talks from the co-located KubeCon Europe event since "The State of Backstage in 2026" by Ben Lambert and Patrik Oldsberg from Spotify went up a few days earlier.
During their BackstageCon talk, ING Bank announced plans to release two of their internal plugins as open source: "Golden Path" and "Contributions Plugin." The community spotted the announcement in #plugins . The plugins were not yet in the community repository at the time of writing, but the community is watching closely for a release date.
Context engineering covers more ground than RAG
We published a technical deep dive this week on why production AI systems fail when treating retrieval augmented generation as a complete context engineering system. The piece examines how context engineering involves intentionally designing every slot in an LLM’s context window, with RAG serving as one retrieval primitive within that system.
An AI ops agent that routes all queries through a vector store has wired up one context slot out of six. The remaining five depend on source systems with entirely different query mechanisms. When an agent escalates an incident to the wrong team, the runbook content is often correct, but the ownership data is stale because ownership records live as structured entity metadata in a service catalog rather than as documentation chunks in a vector index.
The article covers six distinct context source categories used in production systems: system prompts, structured entity metadata, conversation history, retrieved documents via RAG, tool call outputs, and agent working memory. Each source has different authority and staleness characteristics. A system prompt updated by a senior engineer carries different authority than a documentation chunk reflecting last year’s architecture. An entity graph record updated when service ownership changes is more authoritative for ownership questions than any passage in a runbook.
The highest value context is usually structured entity metadata, including service ownership, dependency graphs, on-call assignments, and API configurations. These change faster than documentation can keep up. The article includes a production architecture diagram showing how an incident triage agent assembles context from all six sources at once, including an entity graph, a vector store, and live APIs.
Read the full article: Context Engineering Is Not RAG: Here's the Difference
Community Discussions
🧭 NavContentBlueprint breaking on 1.46 to 1.49 upgrade
With 38 messages, the most active thread in #frontend-system this week was about an error thrown during the new frontend system upgrade: NavContentBlueprint returning navItems is undefined. The issue turned out to be caused by a user accidentally including if(!navItems) return <></> in their component, which triggered an apiRef resolution error. The thread works as a debugging walkthrough for anyone migrating from the legacy frontend to the new BUI-based system.
🧩 New community plugin: Entity Patch
Sarabadu proposed a new community plugin called Entity Patch (PR #8510 ) that lets teams update catalog entity metadata directly from the Backstage UI, with no YAML editing, custom frontend, or deployments required. The motivation was that Entra/Azure AD group custom fields are unreliable as a source of truth, and some teams need a lightweight escape hatch for manual data corrections.
🔐 Axios security upgrade: Self-serve solution available
Questions arose in #general about when the axios security upgrade in PR #33826 would be released. Maintainer Sarabadu clarified that the change is only in the app scaffolder template (not in Backstage's core package dependencies), meaning teams can immediately upgrade their own instance by running yarn why axios and yarn up -R axios. freben also linked to the Backstage Threat Model docs explaining operator responsibilities for dependency management.
📚 New TechDocs contributor joins post-KubeCon
In #techdocs, Eva Gustavsson introduced herself after attending her first KubeCon in Amsterdam, where she was mentored by CNCF during the event. Now retired after many years writing documentation at Ericsson, she's looking to contribute to TechDocs and the "How to Guides Hard to Navigate" issue #30062 . A good example of the KubeCon hallway track bringing new contributors into the project.
Changelog
v1.50.0
Released April 14, 2026
Breaking Changes:
-
Identity token ownership claim removed by default: The
auth.omitIdentityTokenOwnershipClaimsetting now defaults totrue. User tokens no longer contain theentclaim with ownership entity refs. Use theuserInfocore service to get ownership info instead. -
Standard Schema replaces createSchemaFromZod: The deprecated
createSchemaFromZodhelper has been removed from@backstage/frontend-plugin-api. The newconfigSchemaoption accepts direct schema values from Standard Schema compatible libraries like zod v4. Zod v3 schemas require migration to a compatible version. -
Backstage UI updates: Header tabs now use
HeaderNavTabItem[]instead ofHeaderTab[], with a newactiveTabIdprop for controlling highlighted tabs. Tabhrefvalues are now resolved through router context. ThetoolbarWrapperelement has been removed fromPluginHeader. Minimum React version is now 18. -
Removed deprecated PermissionedRoute: Use
RequirePermissioncomponent from@backstage/plugin-permission-react. -
Removed deprecated signal service exports: Use
SignalsServiceandDefaultSignalsServiceinstead of the oldSignalServiceandDefaultSignalServiceexports. -
Catalog node alpha exports removed: Several deprecated alpha exports removed from
@backstage/plugin-catalog-node/alpha. Use stable exports from@backstage/plugin-catalog-nodeinstead. -
Location entity refs and update method: The
Locationtype now includes a requiredentityReffield. Code that producesLocationobjects must include this field. NewupdateLocationmethod added toCatalogApiandCatalogService.
Highlights:
- New catalog model layer system (alpha, opt-in) for declaring and extending entity kinds, annotations, and relations using JSON Schema
- Experimental embedded Postgres support for local development
- New
DialogApi.open()method - Enhanced Backstage UI components, including Badge, RangeSlider, and CheckboxGroup
See the v1.50.0 migration documentation for detailed upgrade guidance.
Full changelog: https://github.com/backstage/backstage/releases/tag/v1.50.0
Read past issues: https://roadie.io/backstage-weekly/