rssRSS feed

seedlingApril 2026

Bluebricks Release Notes

Steadier APIs, sturdier collections

This release standardizes 400 error responses across the API, hardens collection creation, smooths out drift detection enablement, and fixes several UI and deployment bugs.

⚑ Improvements

Unified 400 error response structure

We standardized the API error response format for all 400 errors. Previously, some endpoints returned a single error object while others returned an array. Now every 400 response follows the same structure across the platform.

What does it mean for you? If you're integrating with the Bluebricks API, error handling is simpler and more consistent. Heads-up: this is a breaking change, so any client code that parses 400 responses may need to be updated.


Smarter drift detection enablement

Enabling a drift detection job now auto-creates the job if it doesn't already exist, removing the previous create-then-enable two-step.

What does it mean for you? One less round-trip when turning on drift detection. Flip the switch and you're done.


Hardened collection creation

Collection creation now properly filters out deleted collections and generates unique slugs server-side, preventing duplicate-slug conflicts when recreating collections that previously existed.

What does it mean for you? You can recreate collections without running into name conflicts from old, deleted ones.


Clearer Environment TTL and drift detection toggles

We added clear ON/OFF state labels to the Environment TTL toggle to match other toggles in the app, renamed the drift detection tab for consistency, and fixed a bug where the drift detection label was showing the wrong state.

What does it mean for you? Toggle states are now unambiguous at a glance. What you see is what you get.


πŸ› Bug fixes

  • Fixed chunk-load failures after deploys: Users with stale cached chunks would hit "Failed to fetch dynamically imported module" errors after a deploy. The app now auto-reloads once on chunk-load failure, and falls back to a Sentry alert if the reload doesn't resolve it.

  • Fixed collections tabs resetting with a single collection: Switching between Overview, Props, and Secrets tabs in an organization with only one collection kept resetting the view back to the collection list.

  • Fixed extra border on error pages: "Page not found" and "No access" placeholder pages were rendering with a duplicate inner border.

  • Fixed secrets being escaped during YAML hydration: Secrets used as props for child packages in blueprint YAML were treated as string literals during hydration, breaking deployments that referenced them.

Simpler invites, stronger guardrails

This release streamlines user onboarding with a unified invite flow, adds publish-time validation to catch misconfigured blueprints, and fixes several UI and CLI issues.

πŸš€ New features

Unified user invite flow

We unified the user invite experience across organization and collection levels. You can now invite a user and assign collection access in a single step, instead of first inviting to the org and then separately assigning collections.


⚑ Improvements

Blueprint publish validation for unreferenced child packages

Publishing a blueprint now validates that every child package in the packages[] array is referenced by at least one output in the outs section. If any child package has no output reference, the publish is blocked with a clear error listing the unreferenced packages.


Center-aligned toast notifications

Toast notifications now appear at the center-bottom of the screen instead of the bottom-right corner.


Updated terminology in collection users list

The collection users list now shows "Members" as the section heading instead of the previous "Teammates" label, aligning with terminology used across the rest of the app.


πŸ› Bug fixes

  • Fixed missing error message for unauthorized collection access: Users without permissions to a collection saw a broken page with raw API errors instead of a clear access-denied message.

  • Fixed Bicep CLI fallback on compile errors: When bicep build failed due to a compile error in user code, the CLI incorrectly fell back to regex parsing instead of surfacing the actual error. It now distinguishes between a missing binary and a source code error.

  • Fixed logs tray hiding account management: The logs tray overlay was covering the account management section, making it inaccessible while logs were open.

  • Fixed agent interrupt message after repeated page reloads: A spurious user interrupt message appeared in agent threads after reloading the page three times consecutively during an active conversation.

  • Fixed artifact re-publish with outputs failing validation: Re-publishing a source-based artifact that now includes outputs failed validation because the parent blueprint still held a stale children array from the original publish.

  • Fixed missing discovery badge for new cloud accounts: The discovery badge was not displaying for newly created cloud accounts that support both execution and discovery roles.

Polished UI, better visibility

This release focuses on performance and UI improvements, including a new side menu navigation and discovery support for self-hosted collections on the graph.

⚑ Improvements

New side menu navigation

We transitioned the app from a top header to a left-side navigation menu. Collections, packages, environments, graph, agent, and account settings pages are all accessible from a persistent sidebar. The sidebar can be collapsed with cmd+., and on smaller screens it works as a slide-out drawer.

What does it mean for you? Navigation is faster and more intuitive. Everything you need is one click away in the sidebar, and the main content area gets more screen real estate.


Self-hosted discovery on the graph

Self-hosted collections on the graph now display orchestration (O) and discovery (D) badges, just like AWS and Azure collections. The Discover side panel is also available for self-hosted collections where discovery is enabled.

What does it mean for you? If you manage self-hosted infrastructure, you now get the same discovery visibility on the graph that cloud-native collections have always had. You can see at a glance which collections have orchestration, discovery, or both, and explore discovered resources directly from the graph.


Multi-cloud discovery for self-hosted accounts

Self-hosted cloud accounts can now leverage discovery from AWS, GCP, or Azure. When configuring discovery via the API (/api/v1/cloud/{id}), you specify which cloud provider to use in the discovery object, giving you the flexibility to discover resources across any supported cloud regardless of where your workloads run.

What does it mean for you? If you run self-hosted infrastructure, you can now set up discovery against any combination of AWS, GCP, and Azure directly from your self-hosted account. No need for separate cloud accounts just to get visibility into your cloud resources.


Clearer errors, smoother integrations

This release improves the clarity of API error messages across the platform and fixes Slack integration issues in new workspaces, alongside several UI bug fixes.

⚑ Improvements

Agent-friendly API error messages

We overhauled approximately 250 API error types to return structured, descriptive context and actionable mitigation steps. Every error now tells you (or your agent) what went wrong, why, and what to do next.

What does it mean for you? Agents can parse failures and self-correct autonomously. For you, generic error codes are replaced with plain-language explanations and suggested fixes.


Slack bot identification by app ID

The Slack integration now identifies the Bluebricks bot by app ID and link domain instead of per-workspace user IDs, fixing plan link unfurls in newly connected workspaces.

What does it mean for you? If you recently connected Bluebricks to a new Slack workspace, plan links now unfurl correctly without any extra configuration.


πŸ› Bug fixes

Fixed blueprint path not shown in slim config view

Source-based blueprints with a subdirectory path now correctly display the path in the code viewer's slim configuration.


Fixed collections shown as "Not Connected" in $outs picker

We fixed the $outs reference picker during redeployment incorrectly showing collections as "Not Connected" when they were actually connected.


Tidier layouts, safer lifecycle actions

This release cleans up key UI surfaces with sticky headers, relocated panels, and consistent avatars, while improving collection management and fixing several edge cases in blueprints and deployments.

⚑ Improvements

Sticky headers for deployment list sections

When scrolling long referencing-deployment lists, the "Current environment" and "Other environments" section headers now stick to the top of the viewport.

What does it mean for you? You always know which section you're looking at when scrolling through long environment lists, no more losing your place.


Run history moved to right panel

We relocated the run history dropdown from the header into the right panel, grouping it alongside blueprint metadata and freeing up header space.

What does it mean for you? Run history is now easier to find and visually grouped with related context, giving you a cleaner header and a more logical layout.


Consistent user avatars on the plan page

User representation on the plan page now always uses avatars instead of a mix of avatars and initials.

What does it mean for you? A more polished, consistent look when reviewing who's involved in a plan.


GitHub and GitLab URLs replaced with icons

Long repository URLs in environment and package views are now replaced with compact GitHub and GitLab icons, making repo names and paths easier to scan.

What does it mean for you? Less visual clutter when browsing environments and packages. You see the repo name at a glance instead of a wall of URL prefixes.


Deleting collections with archived environments

Collections that contain archived live environments can now be deleted. Previously, archived environments blocked deletion even though they were no longer active. Their footprint is also fully cleaned up.

What does it mean for you? You can now clean up unused collections without first having to deal with old archived environments that were getting in the way.


πŸ› Bug fixes

Fixed required properties missing in slim blueprint view

Required properties were not displayed when viewing a blueprint in slim/compact mode. They now show correctly.


Fixed package URL missing subdirectory on publish

When publishing a package via the "Create new environment" flow with a subdirectory set, the resulting package git link was missing the subdirectory path. It now includes the full path correctly.


Fixed "Deployment undefined" error on stale approval

Approving a deployment from a stale browser tab (where the deployment had already been approved elsewhere) showed a confusing "Deployment undefined" error. It now returns a clear, informative message.


Fixed invalid output values crash on the plan page

Complex output values (objects, arrays, sensitive markers) on the plan page's artifacts table could cause rendering issues. These are now safely handled.


Fixed bricks bp publish failure on empty repo

Publishing a blueprint from a git repository with zero commits failed with a "reference not found" error. This is now handled gracefully.

Last updated

Was this helpful?