diff --git a/apps/web/src/app/workspaces/components/capability-request/components/request-operations/request-operations.component.ts b/apps/web/src/app/workspaces/components/capability-request/components/request-operations/request-operations.component.ts index 104b083a8349e05a2b9e7fbcb7786ed85712e601..2f541bed31d17ce3ff2f9fdc8bf2f1e075e408ee 100644 --- a/apps/web/src/app/workspaces/components/capability-request/components/request-operations/request-operations.component.ts +++ b/apps/web/src/app/workspaces/components/capability-request/components/request-operations/request-operations.component.ts @@ -152,14 +152,14 @@ export class RequestOperationsComponent implements OnInit { } /** - * The request is closable if it's failed in an error state. + * The request is closable if it's failed or in an error state. */ isRequestCloseable(): boolean { return ( this.selectedVersion && - this.selectedVersion.state === 'Error' && - this.selectedVersion.current_execution.state_name === 'Error' - ) + (this.selectedVersion.state === 'Error' || this.selectedVersion.state === 'Failed') && + (this.selectedVersion.current_execution.state_name === 'Error' || this.selectedVersion.current_execution.state_name === 'Failed') + ); } public loadDefaultCC() { diff --git a/services/capability/capability/views/capability_request.py b/services/capability/capability/views/capability_request.py index a6e453adfa510dab3d9c0763a33caa5843a07ccc..0f5453b800cb3db5e4afc65127d5ad895ce9782c 100644 --- a/services/capability/capability/views/capability_request.py +++ b/services/capability/capability/views/capability_request.py @@ -227,6 +227,12 @@ def close_capability_request(request: Request) -> Response: if capability_request: if capability_request.state == "Failed": capability_request.update_sealed(True) + try: + request.capability_info.save_entity(capability_request) + except Exception as exc: + detail = f"sealing of {capability_request.id} failed: {exc}" + return HTTPBadRequest(detail=detail) + return Response(body=f"Capability request with ID {request_id} successfully closed.") else: not_failed_msg = f"Capability with ID {request_id} is not in a failed state and cannot be closed."