Skip to content

structlog configuration fails with dict input #62201

Description

@collinmcnulty

Apache Airflow version

3.1.7

If "Other Airflow 3 version" selected, which one?

No response

What happened?

structlog error was raised when a dict is passed as an argument to a logging message.

What you think should happen instead?

It should be able to print the string representation of the dict passed as an argument

How to reproduce

Run this file. You can see that it succeeds and behaves as expected if you remove the import airflow

import logging
import airflow

logging.getLogger(__name__).warning('Info message %s', {'a': 10})

Operating System

Debian GNU/Linux 12 (bookworm)

Versions of Apache Airflow Providers

No response

Deployment

Astronomer

Deployment details

No response

Anything else?

No response

Are you willing to submit PR?

  • Yes I am willing to submit a PR!

Code of Conduct

Activity

  1. SakshamSinghal20 commented on Feb 20, 2026

    @SakshamSinghal20
    Contributor

    I would like to work on this issue.

  2. jroachgolf84 commented on Feb 20, 2026

    @jroachgolf84
    Collaborator

    @SakshamSinghal20, please feel free to open up a PR for this issue.

  3. SakshamSinghal20 commented on Feb 20, 2026

    @SakshamSinghal20
    Contributor

    @jroachgolf84 Thank you! I will raise the PR soon for this issue

  4. MrIridescent commented on Feb 20, 2026

    @MrIridescent

    Hi! I'd like to take a look at this. I'm new to the project but I've fixed similar issues before. I'll submit a PR shortly.

  5. potiuk commented on Feb 20, 2026

    @potiuk
    Member

    Whoever gets first Green and positively reviewed PR on it. will get the prize. Feel free @SakshamSinghal20 @MrIridescent .

  6. SakshamSinghal20 commented on Feb 20, 2026

    @SakshamSinghal20
    Contributor

    @potiuk @jroachgolf84 I’ve raised the PR for this issue. Could you please review it and let me know if any changes are needed?

  7. anyapriya commented on Feb 20, 2026

    @anyapriya

    One more detail in case it's relevant: this only fails when the dict has a length of 1. It works for dicts of other sizes.

  8. added a commit that references this issue on Mar 4, 2026
    636852f
  9. 18 remaining items

  10. added a commit that references this issue on Mar 16, 2026
    9da4e96
  11. added a commit that references this issue on Mar 16, 2026
    91ea42a
  12. added a commit that references this issue on Mar 22, 2026
    62153bb
  13. added 2 commits that reference this issue on Mar 23, 2026
    9098aab
    e1e4bdb
  14. added a commit that references this issue on Mar 25, 2026
    46b58cb
  15. added a commit that references this issue on Apr 4, 2026
    97f9daa
  16. added a commit that references this issue on Apr 6, 2026
    d2e81e2
  17. added a commit that references this issue on Apr 6, 2026
    e137899
  18. added a commit that references this issue on Apr 8, 2026
    7db7ff0
  19. added a commit that references this issue on Apr 9, 2026
    b75963a
  20. added 2 commits that reference this issue on Apr 15, 2026
    28200c7
    10e95ae
  21. added a commit that references this issue on Aug 4, 2026
    beda0ed
  22. added a commit that references this issue on Sep 13, 2026
    f506c0a
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions