Super-Simple Includes Documentation

v0.244.0

Atomic Deployment Messages

See Errors & Warnings Catalog for the full index, and Errors & Warnings Guide for a narrative explanation of message categories, exit codes, and common fixes.

Messages from the ssi atomic command, which manages atomic deployments using a directory-and-symlink pattern.

Message Exit Code Hint
Bootstrap complete: Created [destination] and symlink [link]
βš›οΈ Atomic deployment completed successfully to [path]
❌ Parent directory '[parent path]' does not exist. Create it first before using --init. 4 πŸ’‘ Create the parent directory with `mkdir -p` before running `ssi atomic --init`
❌ --init requires the symlink to be absent, but '[path]' already exists. 1 πŸ’‘ Remove the existing symlink first, or run without --init to use the existing atomic deployment setup
Atomic deploy requires symlink at [path]
πŸ”— Updating symlink [link] -> [target]
--suffix-length [length] ignored for blue-green deployments πŸ’‘ Blue-green deployments use fixed .blue/.green suffixes β€” --suffix-length has no effect
❌ Cannot extract deployment directory name from: [path] 4 πŸ’‘ The deployment directory path must have a valid filename component β€” paths ending in `..` or containing non-UTF-8 components are not valid deployment directories
❌ Cannot resolve symlink: [path] (πŸ’¬io_kind) 1 πŸ’‘ The symlink may be broken or pointing to a non-existent target β€” check with `ls -la`
❌ System clock is before the Unix epoch β€” cannot generate timestamp-based suffix (clock is [error message] before epoch) 1
🟦 blue
🟩 green
Create symlink at [path] pointing to deployment directory
πŸ”§ Creating atomic deployment config with symlink: [link]
❌ The deploy command was invoked with no deploy_dir β€” the deploy path must be resolved to an absolute path before reaching this branch (programming error in router.rs) 1
πŸͺ‚ Deployed to: [path]
πŸͺ‚ Deploying to initial directory: [path]
Deploying to opposite color: [deployment color]
❌ Deployment directory already exists: [path] 1 πŸ’‘ A generated deployment suffix collided with an existing directory. Use --suffix-timestamp, remove the directory if it is a stale artifact, or run again for a new random suffix.
Current deployment color: [deployment color]
❌ A directory-deploy operation was attempted with no deploy_dir β€” the deploy path must be resolved to an absolute path before reaching this branch (programming error in router.rs) 1
Filesystem init for blue-green cleanup failed ([path]): [error message]
❌ Filesystem initialization failed for [path] (πŸ’¬io_kind) 4 πŸ’‘ Check that the path exists, the parent directory is accessible, and you have write permission
🎲 Generated [type] suffix: [deployment suffix] πŸ’‘ This value is part of the deployment directory name β€” keep it unique per release so runs do not collide
❌ getrandom::fill() failed β€” the system entropy source is unavailable, which prevents atomic-suffix generation. Error: [error message] 1
❌ Deployment base name is empty or a path component: [name] 1 πŸ’‘ The deployment directory name must have a non-empty base before the suffix (e.g., 'site' in 'site.blue') β€” names like '.blue' or '..green' have no valid base
❌ Invalid deployment directory name: [name] 1 πŸ’‘ Name must end with .blue or .green, or with a 6–40 character alphanumeric hash after '-' or '.' (e.g., site.abc123def456 or site-abc123def456)
πŸͺ§ New deployment directory: [path]
❌ Not a symlink: [path] 1 πŸ’‘ Atomic deployment expects a symlink at this path β€” use `ssi atomic --init` to set up the symlink
🧹 Old deployment already cleaned up: [path]
OS error during cleanup of [path]: [error message] β€” checking whether cleanup succeeded πŸ’‘ The directory may still exist or may have been partially removed β€” check file permissions and whether any process has files open
❌ Failed to remove old deployment: [path] (directory still exists, nothing removed) 10 πŸ’‘ Check file permissions and whether any process has files open in the old deployment directory
❌ **CRITICAL:** Partial removal failure: [path] (directory partially removed β€” **manual cleanup required**) 11 πŸ’‘ Manually inspect and remove the partially deleted directory β€” some files may still remain
βœ”οΈ Old deployment [path] removed successfully
🧹 Removing old deployment: [path]
❌ Deployment-suffix padding in generate_unified_suffix (helpers.rs) could not grow the base suffix to length 6 within the attempt cap β€” each iteration should append a random character; this loop should be unreachable (programming error in ssi-atomic). 1
❌ --suffix-length requested [current] but the maximum for random suffixes is [max] 1 πŸ’‘ Use a shorter --suffix-length value, or use --suffix-timestamp instead
πŸ”— Created symlink: [link] -> [target]
❌ Failed to read symlink metadata: [path] (πŸ’¬io_kind) 1 πŸ’‘ The symlink may be broken, or you may lack permission β€” verify with `ls -la` on the link and its target
❌ Symlink not found: [path] 1 πŸ’‘ Create the deployment symlink first with `ssi atomic --init`, or check the path for typos
❌ Symlink [path] resolves to [target], which is not a directory 1 πŸ’‘ The deployment symlink must point to a directory β€” fix the symlink target or recreate it with `ssi atomic --init`
πŸ”— Successfully updated symlink: [link] -> [target]
Failed to remove temporary symlink: [path] ([error message]) πŸ’‘ This is best-effort cleanup β€” the main operation may still succeed, but stale temp files may remain
βœ”οΈ Validated symlink: [link] -> [target]
Validated symlink: [link] -> [target]