Skip to content

[Python][Parquet] FIXED_LEN_BYTE_ARRAY fails to cast to UUID on Python 3.14 / Nightly builds #50312

Closed

Description

@GiTaDi-CrEaTe

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:

import pyarrow as pa
import pyarrow.parquet as pq
import pandas as pd
import uuid

# Create a simple table with a UUID
original_uuid = uuid.uuid4()
df = pd.DataFrame({"id": [original_uuid]})
table = pa.Table.from_pandas(df)

# Write to parquet and read back
pq.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"]))

---
This was discovered while adding upstream UUID Parquet tests to the pandas test suite (pandas-dev/pandas#65647).

### Component(s)

Python, Parquet

Activity

  1. parker-cassar commented on Jul 1, 2026

    @parker-cassar
    Contributor

    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.

  2. added 2 commits that reference this issue on Jul 1, 2026
  3. added 6 commits that reference this issue on Jul 8, 2026
  4. added 7 commits that reference this issue on Jul 29, 2026
  5. added a commit that references this issue on Aug 18, 2026
  6. added this to the 26.0.0 milestone on Aug 18, 2026
  7. rok commented on Aug 18, 2026

    @rok
    Member

    Issue resolved by pull request 50325
    #50325

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

Type

No type

Projects

No projects

    Milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions