Azure / Azure/azure-functions-python-worker

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

オープン
#1,790 コメント 0 件 リアクション 3 件 担当者 0 名 GitHub で見る
area:python-functions bug python python-sdk
主要言語
Python
スター
357
フォーク
116
平均マージ
32分
マージ済み PR(30日)
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

新しい issue をメールで受け取る

初心者向けの GitHub issue を短くまとめたダイジェスト。