Azure / Azure/azure-functions-python-worker
[Bug] Azure functions with Python 3.12 FastAPI 500 Exception for `response.delete_cookie()`
- 主要语言
- Python
- 星标
- 357
- 派生
- 116
- 平均合并
- 32 分钟
- 30 天内合并 PR
- 1
描述
### Expected Behavior
Cookie should have been deleted in the response to the client using code `response.delete_cookie()` but instead Azure Function worker throws an exception. This is an Azure Function HTTP request Python 3.12 worker with FastAPI.
### Actual Behavior
Azure functions Python worker throws a 500 Exception both when testing locally and in Azure, e.g. running locally throws error below
````
[2025-10-12T20:23:24.965Z] An exception in WorkerInvocationRequest has occurred: ("A 'datetime' or 'int' type was expected instead of a '%s' type. Cannot parse value %s of '%s'.", , datetime.datetime(2025, 10, 12, 20, 23, 24), 'cookie.expires')
[2025-10-12T20:23:24.967Z] Executed 'Functions.http_app_func' (Failed, Id=8c29b839-a137-47a1-bb15-84a04f094f11, Duration=10ms)
[2025-10-12T20:23:24.968Z] System.Private.CoreLib: Exception while executing function: Functions.http_app_func. System.Private.CoreLib: Result: Failure
Exception: TypeError: ("A 'datetime' or 'int' type was expected instead of a '%s' type. Cannot parse value %s of '%s'.", , datetime.datetime(2025, 10, 12, 20, 23, 24), 'cookie.expires')
Stack: File "C:\Program Files\Microsoft\Azure Functions Core Tools\workers\python\3.13\WINDOWS\X64\azure_functions_worker_v2\handle_event.py", line 267, in invocation_request
return_value = to_outgoing_proto(
File "C:\Program Files\Microsoft\Azure Functions Core Tools\workers\python\3.13\WINDOWS\X64\azure_functions_worker_v2\bindings\meta.py", line 223, in to_outgoing_proto
return datum_as_proto(datum, protos) # type: ignore
File "C:\Program Files\Microsoft\Azure Functions Core Tools\workers\python\3.13\WINDOWS\X64\azure_functions_worker_v2\bindings\datumdef.py", line 131, in datum_as_proto
cookies=parse_to_rpc_http_cookie_list(datum.value.get('cookies'), protos),
File "C:\Program Files\Microsoft\Azure Functions Core Tools\workers\python\3.13\WINDOWS\X64\azure_functions_worker_v2\bindings\datumdef.py", line 175, in parse_to_rpc_http_cookie_list
expires=to_nullable_timestamp(
File "C:\Program Files\Microsoft\Azure Functions Core Tools\workers\python\3.13\WINDOWS\X64\azure_functions_worker_v2\bindings\nullable_converters.py", line 110, in to_nullable_timestamp
raise TypeError(
.
````
### Steps to Reproduce
1. Use the code sample below and save as `function_app.py`
2. Run `func start`
3. Send a HTTP request, e.g. `curl -v http://localhost:7071`
4. Azure Functions Python worker throws exception in console and returns `HTTP/1.1 500 Internal Server Error`
### Relevant code being tried
```shell
import azure.functions as func
from fastapi import FastAPI
from fastapi.responses import JSONResponse
app = FastAPI()
func_app = func.AsgiFunctionApp(app=app, http_auth_level=func.AuthLevel.ANONYMOUS)
@app.get("/")
def http_trigger():
response = JSONResponse({'message': 'hello world'}, status_code=200)
response.delete_cookie(key='test')
return response
```
### Relevant log output
```shell
See log output above
```
### requirements.txt file
```shell
azure-functions
fastapi
```
### Where are you facing this problem?
Local - Core Tools and deployed in Azure Function HTTP Python 3.12 app
### Function app name
_No response_
### Additional Information
I'm reporting this as I would have expected `response.delete_cookie(key='test')` to work, and I don't see any previous reported issues for this. As a workaround, it appears `response.set_cookie(key='test', max_age=0)` can be used, but not ideal.
_No response_
贡献指南
调研方向
从 bindings/datumdef.py 开始,重点查看 parse_to_rpc_http_cookie_list,以及 bindings/nullable_converters.py 中的 to_nullable_timestamp。使用 func start 和提供的 curl 请求,通过 function_app.py 重现该失败;当 response.delete_cookie(key='test') 不再导致 worker 异常或 HTTP 500 时,即表示完成。
由索引模型根据 Issue 内容生成。
评估
- 技术栈
- azure, fastapi, python
- 领域
- api, backend, cloud
- Issue 类型
- 缺陷
- 难度
- 3/5
- 预计耗时
- 1-2 天
- 活跃度
- 停滞
- 描述清晰度
- 描述清楚
- 新手友好度
- 48/100