OpenKeel: the sovereign French Cloud solution of the inherent group, with a European reach Discover inherent

Reverse-spec · Services

heat — Errors

Errors — heat — branch stable/2026.2

Branch stable/2026.2 @ 5872396e548c (27.0.1) — repository https://opendev.org/openstack/heat — analysed on 2026-10-29

1. Exception → HTTP translation

  • Native API. FaultWrapper (heat/api/middleware/fault.py:52-170) catches everything below it in the pipeline. It looks the exception's class name up in error_map (heat/api/middleware/fault.py:55-98), walking up the base classes until it finds a match; Exception itself maps to 500 (heat/api/middleware/fault.py:100-107). Engine exceptions arrive through oslo.messaging as dynamically created <Name>_Remote subclasses of the original class: their name is stripped of _Remote and their bases are the real Heat classes, so the same table applies (heat/api/middleware/fault.py:124-128). Body: see 01 § 1.3; error.message only for safe exceptions (all HeatExceptions).
  • **webob.exc raised by handlers** (400 parse errors, 403 tenant mismatch, 404, 302, 202, 204) are wrapped in HTTPExceptionDisguise and keep their own status (heat/common/wsgi.py:355-371); non-error webob exceptions (302/202/204) are returned as responses.
  • **Exceptions that are not HeatException** (oslo.messaging MessagingTimeout, RemoteError for non-Heat engine errors, KeyError, database errors leaking from the engine) → 500 with error.type set but no message (heat/api/middleware/fault.py:161-162). An engine that does not answer within rpc_response_timeout (60 s) therefore yields a 500 MessagingTimeout.
  • Status not visible in the class name: ResourceTypeUnavailable → 400 but ActionNotComplete, InvalidTemplateAttribute, ResourcePropertyDependency, ResourceActionRestricted → 500, because they are absent from the map and inherit from HeatException (heat/api/middleware/fault.py:55-98). Most of them only appear wrapped in StackValidationFailed (400) during validation; raised at runtime they are resource failures.
  • CFN API. No fault wrapper; handlers catch RPC errors and call map_remote_error (heat/api/aws/exception.py:285-338): 20 class names → InvalidParameterValue (400), Forbidden/NotAuthorized → AccessDenied (403), StackExists → AlreadyExists (400), ActionInProgress → InvalidAction (400), RequestLimitExceeded → RequestLimitExceeded (400), everything else → InternalFailure (500). Body: <ErrorResponse><Error><Type>Sender</Type><Code>…</Code><Message>explanation[:detail]</Message></Error></ErrorResponse> (XML; JSON with ContentType=JSON) (heat/api/aws/exception.py:42-67). Quirk: already_exists_errors and request_limit_exceeded are strings, not tuples, so ex_type in 'StackExists' is a substring test (heat/api/aws/exception.py:315-317); no Heat class name is a substring of those two today, so the outcome is right by accident. Note also that EntityNotFound is a 400 InvalidParameterValue in CFN but a 404 natively.

2. Catalogue

Computed by _rewrite/tools/heat_errors.py (the native status and the CFN code are obtained by running the real translation functions on each class; raise sites by git grep outside the tests). Full data with all raise sites: [_rewrite/errors_stable-2026.2.json](_rewrite/errors_stable-2026.2.json).

ExceptionNative HTTPCFN codeMessage templateRaised at (first sites)Defined at
ActionInProgress409InvalidAction"Stack %(stack_name)s already has an action (%(action)s) in progress."heat/engine/service.py:2049, heat/engine/service.py:2199, heat/engine/stack_lock.py:74 (+1)heat/common/exception.py:493
ActionNotComplete500InternalFailure"Stack %(stack_name)s has an action (%(action)s) in progress or failed state."heat/engine/service.py:2495, heat/engine/service.py:2506heat/common/exception.py:498
AuthorizationFailure500InternalFailure"Authorization failed.%(failure_reason)s"heat/common/auth_plugin.py:55, heat/common/context.py:198, heat/common/context.py:210 (+8)heat/common/exception.py:89
CircularDependencyException400InternalFailure"Circular Dependency Found: %(cycle)s"heat/engine/dependencies.py:161heat/common/exception.py:573
ClientNotAvailable500InternalFailure"The client (%(client_name)s) is not available."heat/engine/resource.py:795, heat/engine/template_files.py:149heat/common/exception.py:307
ConcurrentTransaction500InternalFailure"Concurrent transaction for %(action)s"heat/engine/service_software_config.py:135, heat/engine/service_software_config.py:162, heat/objects/resource.py:360heat/common/exception.py:543
ConflictingMergeStrategyForParam500InternalFailure"Conflicting merge strategy '%(strategy)s' for parameter '%(param)s' in file '%(env_file)s'."heat/common/environment_util.py:125heat/common/exception.py:151
DownloadLimitExceeded400InternalFailure"Permissible download limit exceeded: %(message)s"heat/engine/clients/os/swift.py:161heat/common/exception.py:485
EgressRuleNotAllowed500InternalFailure"Egress rules are only allowed when Neutron is used and the 'VpcId' property is set."— (not raised in heat/)heat/common/exception.py:459
EntityNotFound404InvalidParameterValue"The %(entity)s (%(name)s) could not be found."heat/db/api.py:1805, heat/engine/clients/os/barbican.py:67, heat/engine/clients/os/barbican.py:83 (+36)heat/common/exception.py:180
Error500InternalFailure"%(message)s"heat/common/config.py:462, heat/common/config.py:472, heat/db/api.py:1242 (+42)heat/common/exception.py:464
EventSendFailed500InternalFailure"Failed to send message to stack (%(stack_name)s) on other engine (%(engine_id)s)"heat/engine/service.py:1304, heat/engine/service.py:1553heat/common/exception.py:508
Forbidden403AccessDenied"You are not authorized to use %(action)s."heat/engine/service.py:1943heat/common/exception.py:104
HTTPExceptionDisguise500InternalFailure—heat/common/wsgi.py:354, heat/common/wsgi.py:371heat/common/exception.py:446
ImmutableParameterModified400InternalFailure"The following parameters are immutable and may not be updated: %(keys)s"heat/engine/service.py:1053heat/common/exception.py:136
IncompatibleObjectVersion400InternalFailure"Version %(objver)s of %(objname)s is not supported"— (not raised in heat/)heat/common/exception.py:531
InterfaceAttachFailed500InternalFailure"Failed to attach interface (%(port)s) to server (%(server)s)"heat/engine/resources/openstack/nova/server_network_mixin.py:686heat/common/exception.py:513
InterfaceDetachFailed500InternalFailure"Failed to detach interface (%(port)s) from server (%(server)s)"heat/engine/resources/openstack/nova/server_network_mixin.py:669heat/common/exception.py:518
Invalid400InternalFailure"Data supplied was not valid: %(reason)s"heat/db/api.py:877, heat/db/api.py:1333, heat/engine/clients/__init__.py:97 (+3)heat/common/exception.py:116
InvalidBreakPointHook400InvalidParameterValue"%(message)s"heat/engine/environment.py:65, heat/engine/resource.py:2470, heat/engine/resource.py:2476heat/common/exception.py:295
InvalidContentType500InternalFailure"Invalid content type %(content_type)s"heat/common/wsgi.py:215, heat/common/wsgi.py:220heat/common/exception.py:477
InvalidEncryptionKey500InternalFailure"Can not decrypt data with the auth_encryption_key in heat config."heat/common/crypt.py:133, heat/common/crypt.py:152heat/common/exception.py:170
InvalidExternalResourceDependency500InternalFailure"Invalid dependency with external %(resource_type)s resource: %(external_id)s"heat/engine/rsrc_defn.py:265heat/common/exception.py:175
InvalidGlobalResource500InternalFailure"There was an error loading the definition of the global resource type %(type_name)s."heat/engine/service.py:1759, heat/engine/service.py:1821heat/common/exception.py:286
InvalidMergeStrategyForParam500InternalFailure"Invalid merge strategy '%(strategy)s' for parameter '%(param)s'."heat/common/environment_util.py:113heat/common/exception.py:146
InvalidRestrictedAction500InternalFailure"%(message)s"heat/db/api.py:1553, heat/engine/environment.py:84heat/common/exception.py:299
InvalidSchemaError400InvalidParameterValue"%(message)s"heat/engine/constraints.py:99, heat/engine/constraints.py:115, heat/engine/constraints.py:126 (+34)heat/common/exception.py:272
InvalidServiceVersion500InternalFailure"Invalid service %(service)s version %(version)s"heat/engine/clients/client_plugin.py:76, heat/engine/clients/microversion_mixin.py:26heat/common/exception.py:560
InvalidTemplateAttribute500InternalFailure"The Referenced Attribute (%(resource)s %(key)s) is incorrect."heat/engine/hot/functions.py:243, heat/engine/resource.py:2428, heat/engine/resources/aws/cfn/stack.py:85 (+12)heat/common/exception.py:156
InvalidTemplateReference400InvalidParameterValue"The specified reference "%(resource)s" (in %(key)s) is incorrect."heat/engine/cfn/functions.py:86, heat/engine/hot/functions.py:144, heat/engine/hot/functions.py:196 (+1)heat/common/exception.py:161
InvalidTemplateSection400InvalidParameterValue"The template section is invalid: %(section)s"heat/engine/template.py:303heat/common/exception.py:132
InvalidTemplateVersion400InvalidParameterValue"The template version is invalid: %(explanation)s"heat/engine/hot/functions.py:887, heat/engine/template.py:46, heat/engine/template.py:51 (+1)heat/common/exception.py:128
InvalidTemplateVersions500InternalFailure"A template version alias %(version)s was added for a template class that has no official YYYY-MM-DD version."heat/engine/service.py:1712heat/common/exception.py:564
InvalidTenant403InvalidParameterValue"Searching Tenant %(target)s from Tenant %(actual)s forbidden."heat/engine/service.py:575heat/common/exception.py:204
KeystoneServiceNameConflict500InternalFailure"Keystone has more than one service with same name %(service)s. Please use service id instead of name"heat/engine/clients/os/keystone/__init__.py:149heat/common/exception.py:551
MissingCredentialError400InvalidParameterValue"Missing required credential: %(required)s"heat/engine/clients/os/keystone/heat_keystoneclient.py:228, heat/engine/service.py:731, heat/engine/service.py:733heat/common/exception.py:85
NotAuthenticated500InternalFailure"You are not authenticated."— (not raised in heat/)heat/common/exception.py:100
NotAuthorized403AccessDenied"You are not authorized to complete this action."— (not raised in heat/)heat/common/exception.py:112
NotFound404InternalFailure—heat/common/grouputils.py:157, heat/db/api.py:189, heat/db/api.py:259 (+34)heat/common/exception.py:471
NotSupported400InvalidParameterValue"%(feature)s is not supported."heat/engine/resource.py:687, heat/engine/resource.py:2462, heat/engine/resources/aws/autoscaling/autoscaling_group.py:393 (+16)heat/common/exception.py:370
ObjectActionError400InternalFailure"Object action %(action)s failed because: %(reason)s"— (not raised in heat/)heat/common/exception.py:535
ObjectFieldInvalid400InternalFailure"Field %(field)s of %(objname)s is not an instance of Field"— (not raised in heat/)heat/common/exception.py:547
OrphanedObjectError400InternalFailure"Cannot call %(method)s on orphaned %(objtype)s object"— (not raised in heat/)heat/common/exception.py:527
PhysicalResourceExists500InternalFailure"The physical resource for (%(name)s) exists."heat/engine/resources/openstack/neutron/extrarouteset.py:229, heat/engine/resources/openstack/neutron/neutron.py:201heat/common/exception.py:190
PhysicalResourceIDAmbiguity400InvalidParameterValue"Multiple resources were found with the physical ID (%(phys_id)s)."heat/engine/service.py:2070, heat/engine/service.py:2098heat/common/exception.py:199
PhysicalResourceNameAmbiguity400InternalFailure"Multiple physical resources were found with name (%(name)s)."heat/engine/clients/os/neutron/__init__.py:183heat/common/exception.py:194
PropertyUnspecifiedError400InvalidParameterValue"At least one of the following properties must be specified: %(props)s."heat/engine/resources/aws/ec2/eip.py:208, heat/engine/resources/openstack/cinder/quota.py:204, heat/engine/resources/openstack/mistral/cron_trigger.py:116 (+8)heat/common/exception.py:401
ReadOnlyFieldError400InternalFailure"Cannot modify readonly field %(field)s"— (not raised in heat/)heat/common/exception.py:539
RequestLimitExceeded400RequestLimitExceeded"Request limit exceeded: %(message)s"heat/common/template_format.py:101, heat/common/wsgi.py:275, heat/engine/resources/stack_resource.py:269 (+7)heat/common/exception.py:481
ResourceActionNotSupported400InvalidParameterValue"%(action)s is not supported for resource."heat/engine/resource.py:2490, heat/engine/resources/aws/s3/s3.py:163, heat/engine/resources/openstack/neutron/subnet.py:427 (+2)heat/common/exception.py:374
ResourceActionRestricted500InternalFailure"%(action)s is restricted for resource."heat/engine/resource.py:1527, heat/engine/resource.py:1531heat/common/exception.py:378
ResourceFailure500InternalFailure"%(error)s%(path)s%(message)s"heat/engine/resource.py:1185, heat/engine/resource.py:1241, heat/engine/resource.py:1643 (+9)heat/common/exception.py:311
ResourceInError500InternalFailure"Went to status %(resource_status)s due to "%(status_reason)s""heat/engine/clients/os/neutron/__init__.py:145, heat/engine/clients/os/neutron/__init__.py:235, heat/engine/clients/os/nova.py:252 (+26)heat/common/exception.py:431
ResourceNotAvailable404InvalidParameterValue"The Resource (%(resource_name)s) is not available."heat/engine/resource.py:504, heat/engine/resource.py:515, heat/engine/service.py:1993 (+1)heat/common/exception.py:303
ResourceNotFound404InvalidParameterValue"The Resource (%(resource_name)s) could not be found in Stack %(stack_name)s."heat/engine/service.py:1947, heat/engine/service.py:1990, heat/engine/service.py:2077heat/common/exception.py:276
ResourcePropertyConflict400InvalidParameterValue"Cannot define the following properties at the same time: %(props)s."heat/engine/resources/aws/ec2/instance.py:783, heat/engine/resources/openstack/cinder/volume.py:686, heat/engine/resources/openstack/keystone/role_assignments.py:316 (+17)heat/common/exception.py:382
ResourcePropertyDependency500InternalFailure"%(prop1)s cannot be specified without %(prop2)s."heat/engine/resources/openstack/barbican/order.py:226, heat/engine/resources/openstack/barbican/secret.py:147, heat/engine/resources/openstack/manila/share_network.py:134 (+2)heat/common/exception.py:392
ResourcePropertyValueDependency500InternalFailure"%(prop1)s property should only be specified for %(prop2)s with value %(value)s."heat/engine/resources/aws/autoscaling/scaling_policy.py:96, heat/engine/resources/openstack/barbican/secret.py:176, heat/engine/resources/openstack/glance/image.py:302 (+3)heat/common/exception.py:396
ResourceTypeUnavailable400InternalFailure99001 —heat/engine/service.py:1769, heat/engine/service.py:1775heat/common/exception.py:291
ResourceUnknownStatus500InternalFailure"%(result)s - Unknown status %(resource_status)s due to "%(status_reason)s""heat/engine/clients/os/cinder.py:165, heat/engine/clients/os/cinder.py:183, heat/engine/clients/os/nova.py:259 (+19)heat/common/exception.py:421
SIGHUPInterrupt500InternalFailure"System SIGHUP signal received."— (not raised in heat/)heat/common/exception.py:556
SnapshotNotFound404InternalFailure"The Snapshot (%(snapshot)s) for Stack (%(stack)s) could not be found."heat/db/api.py:1684heat/common/exception.py:281
StackExists409AlreadyExists"The Stack (%(stack_name)s) already exists."heat/db/api.py:996, heat/engine/service.py:740heat/common/exception.py:209
StackResourceLimitExceeded500InternalFailure"Maximum resources per stack exceeded."— (not raised in heat/)heat/common/exception.py:489
StackValidationFailed400InvalidParameterValue"%(error)s%(path)s%(message)s"heat/engine/cfn/template.py:126, heat/engine/cfn/template.py:137, heat/engine/clients/os/neutron/neutron_constraints.py:123 (+162)heat/common/exception.py:242
StopActionFailed500InternalFailure"Failed to stop stack (%(stack_name)s) on other engine (%(engine_id)s)"heat/engine/service.py:1593heat/common/exception.py:503
TemplateOutputError500InternalFailure"Error in %(resource)s output %(attribute)s: %(message)s"heat/engine/resources/stack_resource.py:674, heat/engine/resources/template_resource.py:335heat/common/exception.py:166
UnableToAutoAllocateNetwork500InternalFailure"Unable to automatically allocate a network: %(message)s"heat/engine/resources/openstack/nova/server_network_mixin.py:475heat/common/exception.py:569
UnknownUserParameter400InvalidParameterValue"The Parameter (%(key)s) was not defined in template."heat/engine/parameters.py:572heat/common/exception.py:124
UnsupportedObjectError400InternalFailure"Unsupported object type %(objtype)s"— (not raised in heat/)heat/common/exception.py:523
UpdateInProgress500InternalFailure—heat/db/api.py:303, heat/engine/resource.py:416, heat/engine/resource.py:2183heat/common/exception.py:440
UpdateReplace500InternalFailure—heat/engine/resource.py:693, heat/engine/resource.py:696, heat/engine/resource.py:1376 (+9)heat/common/exception.py:414
UserParameterMissing400InvalidParameterValue"The Parameter (%(key)s) was not provided."heat/engine/hot/functions.py:101, heat/engine/parameters.py:245, heat/engine/parameters.py:261 (+3)heat/common/exception.py:120

UpdateInProgress and UpdateReplace are not HeatExceptions: they are internal control flow of the convergence worker (resource locked by another engine; resource must be replaced) and never meant to reach a client (heat/common/exception.py:414-443). HEAT-E99001 is the only error code (ResourceTypeUnavailable); it prefixes the message (heat/common/exception.py:60-74) and is the only value accepted in POST /validate?ignore_errors= (heat/engine/service.py:1341-1347).

3. Situations that matter to clients

SituationException / statusMessage seenSource
Stack name already used in the projectStackExists 409The Stack (s) already exists.heat/engine/service.py:739-740, heat/db/api.py:991-996
Too many stacks / resources / snapshots / configs / deploymentsRequestLimitExceeded 400Request limit exceeded: You have reached the maximum stacks per tenant, 512. Please delete some stacks. (and the other variants)heat/engine/service.py:743-749, heat/engine/service.py:760-766, heat/engine/service.py:2203-2211, heat/engine/service.py:2378-2385, heat/engine/service.py:2425-2433
JSON body too largeRequestLimitExceeded 400JSON body size (N bytes) exceeds maximum allowed size (1048576 bytes).heat/common/wsgi.py:268-275
No or ambiguous template version keyInvalidTemplateVersion 400The template version is invalid: Template version was not provided / Ambiguous versions (…)heat/engine/template.py:40-51
Unknown version valueInvalidTemplateVersion 400The template version is invalid: "heat_template_version: 2099-01-01". "heat_template_version" should be one of: …heat/engine/template.py:76-89
Unknown resource typeStackValidationFailed 400 (create/validate), 404 (GET resource_types/X)The Resource Type (X) could not be found.heat/engine/environment.py:534-535
Resource type forbidden by policyForbidden 403You are not authorized to use resource_types:OS::Nova::Flavor.heat/common/policy.py (ResourceEnforcer), heat/engine/service.py:813
Service of a type not in the catalogStackValidationFailed / ResourceTypeUnavailable 400HEAT-E99001 Service nova is not available for resource type OS::Nova::Server, reason: Service endpoint not in service catalog.heat/engine/service.py:1766-1778, heat/engine/resource.py:785-828
Property/parameter errorsStackValidationFailed 400<error>: <path>: <message>, path joined with dots and [n] for indexes, e.g. Property error: resources.a.properties.value: …heat/common/exception.py:213-245
Missing / unknown parameterUserParameterMissing / UnknownUserParameter 400The Parameter (p) was not provided. / The Parameter (p) was not defined in template.heat/engine/parameters.py:245-261, heat/engine/parameters.py:572
Dependency cycleCircularDependencyException 400Circular Dependency Found: …heat/engine/dependencies.py:161
Immutable parameter changed on updateImmutableParameterModified 400The following parameters are immutable and may not be updated: pheat/engine/service.py:1050-1053
Update of a suspended / deleting stackNotSupported 400Updating a stack when it is suspended is not supported.heat/engine/service.py:1098-1104
Cancel in the wrong stateNotSupported 400Cancelling update when stack is CREATE_COMPLETE is not supported.heat/engine/service.py:1259-1263
Abandon/adopt disabledNotSupported 400Stack Abandon is not supported.heat/engine/service.py:1625-1626, heat/engine/service.py:781-782
Legacy stack locked by a live engine; resource locked (mark unhealthy); snapshot while in progressActionInProgress 409Stack s already has an action (UPDATE) in progress.heat/engine/stack_lock.py:69-75, heat/engine/service.py:2048-2050, heat/engine/service.py:2194-2200
Stack name/id mismatch or deleted stackEntityNotFound 404The Stack (s) could not be found.heat/engine/service.py:557, heat/engine/service.py:568-580, heat/engine/service.py:1504
Resource not in stackResourceNotFound 404The Resource (r) could not be found in Stack s.heat/engine/service.py:1946-1948
Signal to a resource that cannot take it nowResourceActionNotSupported 400Signal resource during CREATE is not supported.heat/engine/resource.py:2457-2462
Engine RPC timeoutMessagingTimeout 500no messageheat/api/middleware/fault.py:100-107
Keystone trust / domain user failureAuthorizationFailure 500, or stack CREATE_FAILEDAuthorization failed.heat/engine/clients/os/keystone/heat_keystoneclient.py:147-151, heat/engine/service.py:891-901
Wrong auth_encryption_keyInvalidEncryptionKey 500Can not decrypt data with the auth_encryption_key in heat config.heat/common/crypt.py (cryptography_decrypt_v1)

4. Asynchronous errors (statuses and events)

They are written to stack.status_reason / resource.status_reason and one event row each; the client sees them by polling or in GET …/events.

Status reasonSet whenSource
Resource CREATE failed: <ExceptionClass>: <path>: <message> (stack) and <ExceptionClass>: <message> (resource)a plugin's handle_*/check_*_complete raisedheat/engine/resource.py:911-919, heat/engine/check_resource.py:188-194
Timed outthe traversal outlived timeout_mins (default stack_action_timeout, 3600 s)heat/engine/check_resource.py:126-128, heat/engine/check_resource.py:195-198
Worker went down during resource <ACTION>lock stolen from a dead engineheat/engine/check_resource.py:82-88
<ACTION> aborted (user triggered cancel)resource worker cancelledheat/engine/resource.py:920-930, heat/engine/check_resource.py:37-43
Stack <ACTION> cancelledcancel_without_rollback, or delete during an operationheat/engine/worker.py:386-393
Engine went down during stack <ACTION>legacy stack found IN_PROGRESS with a dead lock holder at engine startheat/engine/service.py:2600-2608
Stack status manually resetheat-manage reset_stack_statusheat/db/api.py:1068-1095
Resource CHECK failed: a: …; b: …CHECK action with failuresheat/engine/check_resource.py:461-472
Unexpected exit while IN_PROGRESS. / the exception textunhandled exception in a stack-level taskheat/engine/stack.py:106-130
Went to status ERROR due to "…" (ResourceInError), … Unknown status … (ResourceUnknownStatus)the remote resource (server, volume…) reached an error stateheat/common/exception.py:421-438, raised by resource plugins (29 + 22 sites)
Software deployment FAILED: deploy_status_code : Deployment exited with non-zero status code: Nagent signalheat/engine/service_software_config.py:322-351

Rollback: with disable_rollback = false, a failed CREATE/UPDATE/ADOPT/RESTORE goes on to ROLLBACK_IN_PROGRESS; the failure reason stays in the events, the stack ends ROLLBACK_COMPLETE (heat/engine/stack.py:2348-2353). Clients that only look at the final state see ROLLBACK_COMPLETE, not the cause.

5. Key log messages

LevelMessageSituationSource
ERRORReturning %(code)s to user: %(explanation)sa 5xx webob error in a handlerheat/common/wsgi.py:366-369
ERRORUnexpected error occurred serving API: %snon-Heat exception in a handlerheat/common/wsgi.py:439-442
ERRORUnhandled exception in %sexception in a worker RPC methodheat/engine/worker.py:46-55
WARNING[%s] Sync point update failed for entity %ssync point vanished during the mergeheat/engine/sync_point.py:192-196
WARNINGFailed to store stack %(name)s with traversal ID %(trvsl_id)s, aborting stack %(action)sconcurrent traversal won the CASheat/engine/stack.py:1488-1493
INFOStack %(name)s traversal %(trvsl_id)s no longer active; not setting state to …late worker of an old traversalheat/engine/stack.py:1113-1118
INFOStale lock detected on stack %(stack)s. Engine %(engine)s will attempt to steal the locklegacy lock of a dead engineheat/engine/stack_lock.py:77-79
ERRORFATAL. Failed stack_lock release. Exitingthe engine exitsheat/engine/service.py:247-253
ERRORFailed to deliver deployment data to server %s: %smetadata TempURL PUT failedheat/engine/service_software_config.py:145-147
ERRORDomain admin client authentication failedwrong stack_domain_admin credentialsheat/engine/clients/os/keystone/heat_keystoneclient.py:150
ERRORtrust token re-scoping failed! / Trust impersonation failedKeystone trust problemsheat/engine/clients/os/keystone/heat_keystoneclient.py:184-192

Source: reverse-spec-heat/02-errors_stable-2026.2.md. The _rewrite/ and _inventory/ files are not published on the site.