You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
Repository navigation
[Python][Parquet] FIXED_LEN_BYTE_ARRAY fails to cast to UUID on Python 3.14 / Nightly builds #50312
Describe the bug, including details regarding any error messages, version, and platform.
Description of the bug
When writing uuid.UUID objects to Parquet using PyArrow, the data is correctly stored as a FIXED_LEN_BYTE_ARRAY. However, when reading this data back on Python 3.14 / Nightly builds, PyArrow fails to cast the 16 bytes back into Python uuid.UUID objects, instead returning raw bytes.
This works perfectly on Python 3.13 and below, but introduces a regression on other builds.
To Reproduce:
importpyarrowaspaimportpyarrow.parquetaspqimportpandasaspdimportuuid# Create a simple table with a UUIDoriginal_uuid=uuid.uuid4()
df=pd.DataFrame({"id": [original_uuid]})
table=pa.Table.from_pandas(df)
# Write to parquet and read backpq.write_table(table, "test_uuid.parquet")
read_table=pq.read_table("test_uuid.parquet")
result_df=read_table.to_pandas()
# On Python 3.13, this is a uuid.UUID object. # On Python 3.14 / Nightly, this is raw bytes.print(type(result_df.loc[0, "id"]))
---ThiswasdiscoveredwhileaddingupstreamUUIDParquetteststothepandastestsuite (pandas-dev/pandas#65647).### Component(s)Python, Parquet
Activity
parker-cassar commentedon Jul 1, 2026
I'll give this a go, it's okay if someone else fixes it before me, but I'll try to get a fix within 24 hours.
apacheGH-50312: [Python] Fix UUID extension type round-trip to pandas…
apacheGH-50312: [Python] Fix UUID extension type round-trip to pandas…
Merge branch 'apache:main' into apachegh-50312-uuid-pandas-roundtrip
apacheGH-50312: [Python] Fix UUID extension type round-trip to pandas…
apacheGH-50312: [Python] Fix UUID extension type round-trip to pandas…
apacheGH-50312: [Python] Fix UUID extension type round-trip to pandas…
apacheGH-50312: [Python] Fix UUID extension type round-trip to pandas…
apacheGH-50312: [Python] Fix UUID extension type round-trip to pandas…
apacheGH-50312: [Python] Fix UUID extension type round-trip to pandas…
apacheGH-50312: [Python] Avoid per-element allocations when convertin…
apacheGH-50312: [Python] Avoid per-element allocations when convertin…
apacheGH-50312: [Python] Move UUID construction into helpers.cc
apacheGH-50312: [Python] Reuse empty kwargs
apacheGH-50312: [Python] Use shared empty tuple constant for UUID con…
apacheGH-50312: [Python] Use shared empty tuple constant for UUID con…
GH-50312: [Python] Fix UUID extension type round-trip to pandas retur…
rok commentedon Aug 18, 2026
Issue resolved by pull request 50325
#50325