Skip to content

setting user attributes to non-strings when strings are expected can cause problems #115

@eli-darkly

Description

@eli-darkly

We've identified some potential problems that can happen if any of the non-custom user attributes that are expected to be strings (that is, all of them except :anonymous) are instead set to a number or some other type. The Python SDK, like the other SDKs in weakly-typed languages, does not prevent this since the user object is simply a dictionary.

  1. LaunchDarkly will not process analytics events for such a user.
  2. If you set "secondary" to a non-string, and try to evaluate a flag that has a percentage rollout, the evaluation will fail.

We believe this behavior is the same in all existing versions of the Python SDK.

Our planned fix is to make the SDK coerce these values to strings as needed. To avoid causing unexpected changes in behavior for existing code, we will not enforce strict typing in this major version.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions