Azure / Azure/azure-functions-python-worker

[Bug] Azure functions with Python 3.12 FastAPI 500 Exception for `response.delete_cookie()`

Đang mở
#1,790 0 bình luận 3 reaction 0 người được giao Xem trên GitHub
area:python-functions bug python python-sdk
Ngôn ngữ chính
Python
Star
357
Fork
116
Merge trung bình
32 phút
Pull request đã merge (30 ngày)
1

Mô tả

### 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_

Hướng dẫn đóng góp

Mở hướng dẫn đóng góp

Hướng nghiên cứu

Bắt đầu với bindings/datumdef.py, đặc biệt là parse_to_rpc_http_cookie_list, và bindings/nullable_converters.py tại to_nullable_timestamp. Tái hiện lỗi bằng function_app.py với func start và yêu cầu curl được cung cấp; hoàn tất khi response.delete_cookie(key='test') không còn gây ra ngoại lệ worker hoặc HTTP 500.

Do mô hình lập chỉ mục viết ra từ nội dung của issue.

Đánh giá

Công nghệ
azure, fastapi, python
Lĩnh vực
api, backend, cloud
Loại issue
Lỗi
Độ khó
3/5
Thời gian dự kiến
1-2 ngày
Mức độ hoạt động
Đình trệ
Độ rõ ràng
Đặc tả rõ ràng
Mức phù hợp với người mới
48/100

Nhận issue mới trong hộp thư của bạn

Bản tóm tắt ngắn những issue GitHub phù hợp với người mới.