From 5f22022527d88dbef6202c9c12265863af373901 Mon Sep 17 00:00:00 2001 From: Darshan Date: Fri, 16 Jan 2026 18:33:27 +0530 Subject: [PATCH 1/4] fix: async being missed. --- .../Functions/Http/Executions/Create.php | 39 +++++++++++++++---- 1 file changed, 31 insertions(+), 8 deletions(-) diff --git a/src/Appwrite/Platform/Modules/Functions/Http/Executions/Create.php b/src/Appwrite/Platform/Modules/Functions/Http/Executions/Create.php index 8c4b68edb6..cc54068b81 100644 --- a/src/Appwrite/Platform/Modules/Functions/Http/Executions/Create.php +++ b/src/Appwrite/Platform/Modules/Functions/Http/Executions/Create.php @@ -168,6 +168,7 @@ class Create extends Base throw new Exception($validator->getDescription(), 400); } + /* @var Document $function */ $function = $authorization->skip(fn () => $dbForProject->getDocument('functions', $functionId)); $isAPIKey = User::isApp($authorization->getRoles()); @@ -344,6 +345,13 @@ class Create extends Base $execution = $authorization->skip(fn () => $dbForProject->createDocument('executions', $execution)); } + $this->enqueueDeletes( + $project, + $function->getSequence(), + $executionsRetentionCount, + $queueForDeletes + ); + return $response ->setStatusCode(Response::STATUS_CODE_ACCEPTED) ->dynamic($execution, Response::MODEL_EXECUTION); @@ -517,18 +525,33 @@ class Create extends Base } } - /* cleanup */ - if ($executionsRetentionCount > 0) { + $this->enqueueDeletes( + $project, + $function->getSequence(), + $executionsRetentionCount, $queueForDeletes - ->setProject($project) - ->setResource($function->getSequence()) - ->setResourceType(RESOURCE_TYPE_FUNCTIONS) - ->setType(DELETE_TYPE_EXECUTIONS_LIMIT) - ->trigger(); - } + ); $response ->setStatusCode(Response::STATUS_CODE_CREATED) ->dynamic($execution, Response::MODEL_EXECUTION); } + + private function enqueueDeletes( + Document $project, + int $resourceId, + int $retention, + DeleteEvent $queueForDeletes + ): void + { + /* cleanup */ + if ($retention > 0) { + $queueForDeletes + ->setProject($project) + ->setResource($resourceId) + ->setResourceType(RESOURCE_TYPE_FUNCTIONS) + ->setType(DELETE_TYPE_EXECUTIONS_LIMIT) + ->trigger(); + } + } } From 15caa279777ab4359a98cc7de3418248238001b0 Mon Sep 17 00:00:00 2001 From: Darshan Date: Fri, 16 Jan 2026 18:38:40 +0530 Subject: [PATCH 2/4] lint. --- .../Platform/Modules/Functions/Http/Executions/Create.php | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/src/Appwrite/Platform/Modules/Functions/Http/Executions/Create.php b/src/Appwrite/Platform/Modules/Functions/Http/Executions/Create.php index cc54068b81..067e540ab7 100644 --- a/src/Appwrite/Platform/Modules/Functions/Http/Executions/Create.php +++ b/src/Appwrite/Platform/Modules/Functions/Http/Executions/Create.php @@ -542,8 +542,7 @@ class Create extends Base int $resourceId, int $retention, DeleteEvent $queueForDeletes - ): void - { + ): void { /* cleanup */ if ($retention > 0) { $queueForDeletes From e8ca0610eea6de69508127f02986bf05df969879 Mon Sep 17 00:00:00 2001 From: Darshan Date: Fri, 16 Jan 2026 18:40:37 +0530 Subject: [PATCH 3/4] fix: type --- .../Platform/Modules/Functions/Http/Executions/Create.php | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/src/Appwrite/Platform/Modules/Functions/Http/Executions/Create.php b/src/Appwrite/Platform/Modules/Functions/Http/Executions/Create.php index 067e540ab7..16308760d0 100644 --- a/src/Appwrite/Platform/Modules/Functions/Http/Executions/Create.php +++ b/src/Appwrite/Platform/Modules/Functions/Http/Executions/Create.php @@ -539,12 +539,12 @@ class Create extends Base private function enqueueDeletes( Document $project, - int $resourceId, - int $retention, + string $resourceId, + int $executionsRetentionCount, DeleteEvent $queueForDeletes ): void { /* cleanup */ - if ($retention > 0) { + if ($executionsRetentionCount > 0) { $queueForDeletes ->setProject($project) ->setResource($resourceId) From 2f066a6ba8e6e10a36e40aff7fc14901cbe23a9c Mon Sep 17 00:00:00 2001 From: Darshan Date: Fri, 16 Jan 2026 18:41:22 +0530 Subject: [PATCH 4/4] add: check. --- .../Platform/Modules/Functions/Http/Executions/Create.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/Appwrite/Platform/Modules/Functions/Http/Executions/Create.php b/src/Appwrite/Platform/Modules/Functions/Http/Executions/Create.php index 16308760d0..6d2048b233 100644 --- a/src/Appwrite/Platform/Modules/Functions/Http/Executions/Create.php +++ b/src/Appwrite/Platform/Modules/Functions/Http/Executions/Create.php @@ -544,7 +544,7 @@ class Create extends Base DeleteEvent $queueForDeletes ): void { /* cleanup */ - if ($executionsRetentionCount > 0) { + if ($executionsRetentionCount > 0 && ENABLE_EXECUTIONS_LIMIT_ON_ROUTE) { $queueForDeletes ->setProject($project) ->setResource($resourceId)