Packages & Blueprints
Resolve publishing errors, invalid bricks.json files, output reference issues, and other package and blueprint problems
Quick reference
Invalid bricks.json
Missing required fields or bad JSON syntax
Validate JSON; ensure name and version are present
Blueprint outputs error
Invalid Data.<pkg>.<output> reference
Check case sensitivity; verify the output exists in the child blueprint
Outputs must reference a package
No output uses Data.<packageId>.<outputName>
Add at least one output that references a child package
Invalid lowercase references
Used data. or props. instead of Data. or Props. in bricks.json
Capitalize to Data. and Props., or switch to bricks.yaml (which uses lowercase by design)
Invalid property name
Name doesn't match allowed pattern
Rename to start with a letter or underscore
Package not found
Package disabled, restricted, or misspelled
Use bricks blueprint search -q <term> to find packages
Publish failed
Missing IaC files or upload error
Verify all required files are present; retry
Bicep inputs or outputs missing after publish
Entry file not named main.bicep
Rename your Bicep entry file to main.bicep and republish
Bicep environment creation fails with 400
Input value format mismatch (e.g., array passed as a flat string)
Ensure array values are passed as proper JSON arrays, not stringified values
Bicep deployment fails with wrong scope
Template uses targetScope = 'subscription'
Refactor to resource group scope; Bluebricks only supports resource group deployments
"Artifact cannot be deployed"
Attempted to deploy an artifact instead of a blueprint
Wrap the artifact in a blueprint; details below
"Package version not enabled" or "disabled"
Version exists but is disabled for your organization
Enable the version in the app, or use an enabled version
"Missing required secrets"
Secrets not configured in the collection
Add secrets in collection settings; details below
Invalid bricks.json
The bricks.json file defines your artifact or blueprint metadata. Publishing fails if the file is malformed or missing required fields.
Required fields
All packages require name and version. Blueprints additionally require packages and outs. Artifacts require native.
Common causes
Invalid JSON syntax: trailing commas, missing quotes, or unescaped characters
Missing
version: every package needs a semantic versionInvalid name: package names must start with a letter, end with a letter or number, and use only letters, numbers, and underscores. Hyphens are not allowed (
aws_vpc, notaws-vpc)
How to fix
Validate your JSON with a linter or
jq:
Verify required fields match the bricks.json reference
You can also use bricks.yaml (or bricks.yml) format, which uses YAML syntax with slightly different field names (inputs instead of props, outputs instead of outs). If both files exist, bricks.yaml takes priority.
Blueprint output reference errors
Blueprint outputs use the Data.<packageId>.<outputKey> syntax to wire values between packages. Bluebricks validates these references at publish time and rejects blueprints with invalid output wiring.
Common causes
Case mismatch: in
bricks.json,DataandPropsmust be capitalized (Data.my_pkg.endpoint, notdata.my_pkg.endpoint). Inbricks.yaml, use lowercase (data.my_pkg.endpoint,inputs.region,secrets.db_password)Wrong package ID: the package ID in the reference doesn't match a package in the blueprint
Output doesn't exist in child blueprint: the child blueprint does not define the output you referenced. The error message lists the invalid references and the outputs that are available in each child
No output references at all: at least one blueprint output must reference a package using
Data.<packageId>.<outputName>
Error messages
Blueprint validation failed... The following output references are invalid
One or more Data.<packageId>.<outputName> references point to outputs that do not exist in the child blueprint
Blueprint outputs must reference at least one package
None of your blueprint outputs use a Data.<packageId>.<outputName> reference
Blueprint contains invalid lowercase references
You used data. or props. in bricks.json instead of Data. or Props.
How to fix
Open your
bricks.jsonorbricks.yamlVerify each output reference matches the exact package ID and output key
Check the child package outputs to confirm the referenced key exists:
For a complete guide on wiring inputs and outputs, see Inputs and Outputs.
Invalid property or output names
Property and output names must match the pattern ^[a-zA-Z_][a-zA-Z0-9_]*$. Names that start with a number or contain special characters are rejected. This is a separate validation from package names, which have stricter rules (must start with a letter, no leading underscores).
How to fix
Start names with a letter or underscore
Use only letters, numbers, and underscores
Replace hyphens with underscores
Package not found
The PACKAGE_NOT_FOUND error occurs when a blueprint references a package that cannot be resolved.
Common causes
Misspelled package name: check for typos in the package reference
Package not published: the package hasn't been published to your organization
Version not enabled: pre-release versions may be disabled by your admin
Policy restriction: the Allowed Blueprints policy may block specific packages
How to fix
Search for available packages:
If the package exists but you can't access it, contact your organization admin to check version availability and policies.
Go to the Packages page
Search for the package by name
Verify the version you need is published and enabled
Check collection policies under the collection's Policies tab under Allowed Blueprints
Publish failed
Blueprint or artifact publishing can fail due to missing files, unsupported file types, or upload errors.
How to fix
Verify your
bricks.jsonis valid (see above)Ensure all required IaC files are present in the source directory:
Terraform/OpenTofu: at least one
.tffileHelm: a valid
Chart.yamlCloudFormation: a template file (
.yamlor.json)Bicep: a
main.bicepfile (entry file must use this exact name)
Publish from the directory containing your
bricks.json:
The CLI uses the current working directory by default. Use --src <path> to specify a different directory.
If the upload fails, check your network connection and retry
Publishing is available through the CLI or CI/CD integrations. See Creating Artifacts for setup instructions.
Ensure file encoding is UTF-8. Non-UTF-8 files may cause parsing failures during validation.
Bicep inputs or outputs missing after publish
Your Bicep artifact publishes successfully but inputs (props) or outputs are empty or only show location and resourceGroup.
Common causes
Entry file not named
main.bicep: Bluebricks requires the Bicep entry file to be namedmain.bicep. If your file uses a different name (e.g.,windows-vm.bicep,deploy.bicep), parameter and output extraction is skippedRegex fallback parser misreads typed arrays: if the Bicep CLI is unavailable during publishing, the fallback parser cannot map typed array parameters like
int[]to the correct Bluebricks type. The raw type string is passed through unmapped instead of being recognized as a list. This does not occur on the primary publish path
How to fix
Rename your Bicep entry file to
main.bicep. Module files referenced by the entry file can use any nameRepublish the artifact
Verify that inputs and outputs appear correctly on the blueprint page in the Bluebricks app
For full Bicep type mapping details, see the Bicep artifact reference.
Bicep environment creation fails with 400
Creating an environment returns Server error (400) from the /api/v1/env/create endpoint.
Common causes
Array value passed as a flat or stringified value: list-type inputs must be proper JSON arrays (e.g.,
["a","b"]), not comma-separated strings or other scalar formatsMissing required inputs: required properties were not provided during environment creation
How to fix
Open your blueprint in the Bluebricks app and check the expected input types
For list-type inputs, ensure the value is a proper JSON array (e.g.,
[32, 64]), not a stringified or flat valueVerify that all required inputs have values assigned in the collection or environment configuration
Bicep deployment fails with wrong scope
The deployment fails because the Bicep template targets a scope that Bluebricks does not support.
Common causes
Template uses
targetScope = 'subscription': Bluebricks runs all Bicep deployments at the resource group scope. Subscription, management group, and tenant scopes are not supported
How to fix
Remove or change
targetScopein your Bicep template so it deploys at the resource group levelMove any subscription-level resources (e.g., resource group creation, policy assignments) into a separate process outside Bluebricks
Republish the artifact
Artifact cannot be deployed
You see Artifact '<name>' cannot be deployed. Only blueprints support deployment when you try to deploy an artifact directly. Artifacts are the building blocks of blueprints, but they are not deployable on their own.
Why this happens
Artifacts and blueprints are both packages, but they serve different roles:
An artifact wraps a single IaC component (one Terraform module, one Helm chart, etc.)
A blueprint composes one or more packages into a deployable unit with wired inputs, outputs, and relationships
Only blueprints can be installed into environments. If you try to deploy an artifact, Bluebricks rejects the request.
How to fix
Check whether the package is an artifact or a blueprint:
If you need to deploy this artifact, wrap it in a blueprint first. See Creating Blueprints for instructions.
Go to the Packages page and find the package
Check the package type in the details view (artifact vs. blueprint)
If it is an artifact, look for an existing blueprint that includes it, or create a new blueprint
For background on the difference between artifacts and blueprints, see Packages in the main documentation.
Package version disabled or not enabled
You see Package '<name>' version '<version>' is not enabled or is disabled when the package version exists but your organization cannot use it. This is different from "Package not found," where the package does not exist at all.
How to fix
Go to the Packages page and find the package
Open the version list and check whether the version you need is enabled
If it is disabled, an organization admin can enable it from the package settings
List available versions to find one that is enabled:
If the specific version you need is disabled, contact your organization admin to enable it.
Pre-release versions are disabled by default. See the FAQ for how to enable them.
Missing required secrets
You see Missing required secrets: <names> when the blueprint requires secrets that have not been configured in the collection. Secrets are distinct from properties: they are sensitive values stored in the collection's secret manager and referenced in blueprints via Secrets.<name>.
Why this is different from missing properties
Properties are set during environment creation or inherited from the collection. The error
Missing required propertiescovers theseSecrets must be configured in the collection settings before deploying. They cannot be passed at deploy time
How to fix
Go to the collection's Settings tab
Open the Secrets section
Add each secret listed in the error message
Retry the deployment
Secrets must be configured through the Bluebricks app. Check which secrets the blueprint requires:
Secrets appear in the output with a Secrets. prefix. Add them in the collection settings, then retry.
For background on secrets, see Secrets in the main documentation.
Secrets treated as plain strings
Secret references are passed to the IaC runner as literal strings (e.g., "secrets.adminUsername") instead of being resolved to the actual secret value. The run fails because the variable receives the string "secrets.adminUsername" rather than the secret's contents.
Common causes
Wrong case in bricks.json:
bricks.jsonrequires capitalized keywords (Secrets.my_key,Data.pkg.output,Props.region). Using lowercase causes the reference to be treated as a plain string. Publishing will reject these with aBlueprint contains invalid lowercase referenceserror.
The same rule applies to Data and Props in bricks.json.
Quoted value in bricks.yaml: wrapping the reference in quotes can cause it to be interpreted as a literal string rather than an expression
bricks.yaml uses lowercase keywords (secrets, data, inputs). The CLI automatically converts these to the capitalized form during publishing.
How to fix
bricks.json: verify that
Secrets,Data, andPropsare capitalizedbricks.yaml: make sure the value is not wrapped in quotes
Republish the blueprint and retry the deployment
Need more help?
Enable logging:
bricks logger enableRun the failing command again and check
~/.bricks/logs/for the latest log fileReview the Blueprints Overview for architecture details
Contact support with the error message and your
bricks.json
Last updated