Skip to content
FerrFlow

Reference / Error codes

Error codes

When FerrFlow encounters an error, it displays a code like error[E2001] with a link to this page. Use the code to find the cause and fix.

The config file specified via --config does not exist.

The ferrflow.json file contains invalid JSON (missing commas, trailing commas, unquoted keys).

The ferrflow.json5 file contains invalid JSON5.

The ferrflow.toml file contains invalid TOML.

Internal error when writing TOML output.

The .ferrflow dotfile contains invalid JSON.

Internal error when writing the dotfile.

A path in the config could not be resolved to an absolute path.

E1009: Failed to write temporary loader file

Section titled “E1009: Failed to write temporary loader file”

Could not write the temporary JS/TS loader during config evaluation.

The tsx runtime could not be found or executed for .ts config files.

The node runtime could not be found or executed for .js config files.

The JS/TS config file threw an error during evaluation.

The JS/TS config file produced non-UTF-8 output.

The JS/TS config file did not produce valid JSON output.

The config file exists but could not be read (permissions, encoding).

More than one config file was found in the project root (e.g. both ferrflow.json and ferrflow.toml).

Running ferrflow init when a config file already exists.

The --repo argument does not match the expected format owner/repo or host/owner/repo.

The GitHub API returned an error during remote config validation.

The GitLab API returned an error during remote config validation.

The remote config file contains invalid UTF-8 encoding.

The remote config file could not be parsed.

The specified config file path does not exist in the remote repository.

No FerrFlow config file was found in the remote repository.

The --ref flag was used without specifying --repo.

The current directory is not inside a git repository.

FerrFlow does not support bare git repositories.

The tag that FerrFlow wants to create already exists.

Could not push the release branch to the remote.

The remote rejected the push (non-fast-forward, branch protection, hooks).

Could not push tags to the remote.

Could not force-push floating tags (e.g. v1, v1.2).

The configured git remote (default: origin) does not exist.

After pushing, the release commit could not be verified on the remote branch.

The remote branch was not found after a push operation.

The GitHub Releases API returned an error when creating a release.

Could not fetch existing releases from the GitHub API.

The GitHub API returned an unexpected response format.

Could not publish (un-draft) a GitHub release.

The GitHub API returned an error when creating a PR.

The GitHub API returned an unexpected PR response format.

The GitHub API PR response was missing the number or node_id field.

Could not enable auto-merge on the release PR via the GraphQL API.

The GitHub GraphQL API returned an unexpected response.

The GraphQL mutation to enable auto-merge returned an error.

The GitLab Releases API returned an error.

The GitLab API returned an error when creating an MR.

The GitLab API returned an unexpected MR response format.

The GitLab MR response was missing the iid field.

Could not merge the release MR via the GitLab API.

CodeError
E4101Cannot read TOML version file
E4102Invalid TOML syntax
E4103No version field found
E4104Failed to write TOML version file
E4105Invalid UTF-8 in TOML file
CodeError
E4201Cannot read JSON version file
E4202Invalid JSON syntax
E4203No version field found
E4204Failed to write JSON version file
E4205Invalid UTF-8 in JSON file
CodeError
E4301Cannot read Chart.yaml
E4302No version field found
E4303Failed to write Chart.yaml
E4304Invalid UTF-8 in Chart.yaml
CodeError
E4401Cannot read XML version file
E4402No <version> tag found
E4403Failed to write XML file
E4404Invalid UTF-8 in XML file
CodeError
E4410Cannot read .csproj file
E4411No <Version> tag found
E4412Failed to write .csproj file
E4413Invalid UTF-8 in .csproj file
CodeError
E4501Cannot read build.gradle
E4502No version field found
E4503Failed to write build.gradle
E4504Invalid UTF-8 in build.gradle
CodeError
E4601Failed to run git describe
E4602No version tag found — handled internally since v3
E4603Go modules do not support write

On E4602: starting with FerrFlow v3 the release flow catches this case and falls back to the strategy’s bootstrap baseline (0.0.0 / 0 / …), so the first release on a brand-new repo succeeds without a pre-seeded tag. The error code still exists for programs that import GoModVersionFile directly, but end users running ferrflow release should not see it anymore.

CodeError
E4701Cannot read text version file
E4702No version found
E4703Failed to write text file
E4704Invalid UTF-8 in text file

The pre-release channel name is empty.

The channel name contains invalid characters. Only alphanumeric characters and hyphens are allowed.

The current version string is not valid semantic versioning.

A lifecycle hook exited with a non-zero status code and on_failure is set to abort.

No packages are defined in the config file.

The specified package name does not exist in the config.

A package referenced during release was not found in the configuration.

A floating tag would move to an older version.