WorkItemDetail.labels validation fails when API returns unexpanded label IDs
Personne n'a encore pris cette issue.
Évaluation
- Difficulté
- 2/5
- Temps estimé
- 1-3 heures
- Accessibilité débutants
- 68/100
Piste de recherche
Trouvez le modèle WorkItemDetail dans le SDK et reproduisez l’échec via work_items.retrieve sans expand=labels. Vérifiez que labels accepte à la fois les chaînes d’ID de label non développées de l’API et les objets Label développés, et confirmez que les chemins retrieve_work_item ne lèvent plus de ValidationError.
Rédigé par le modèle d'indexation à partir du texte de l'issue.
Description
Summary
work_items.retrieve() (and any code path returning a WorkItemDetail) raises a pydantic.ValidationError for any work item that has labels attached, when labels is not explicitly expanded.
Repro
Call the retrieve endpoint for a work item that has one or more labels, without expand=labels:
client.work_items.retrieve(
workspace_slug=workspace_slug,
project_id=project_id,
work_item_id=work_item_id,
)
Result: pydantic.ValidationError — Input should be a valid dictionary or instance of Label — deterministic, not intermittent, for every work item that has labels.
Root cause
The Plane API returns labels as an array of label ID strings when the field isn't expanded (the normal/default response shape). The WorkItemDetail model types labels as list[Label] unconditionally, so pydantic rejects the plain ID strings instead of accepting either shape.
Expected behavior
labels should accept both shapes depending on whether the caller expanded it — e.g. list[Label] | list[str], or the model should coerce string IDs into a minimal Label reference, consistent with how the API actually behaves when expand isn't requested.
Environment
plane-sdk==0.2.19(PyPI)- Found via
makeplane/plane-mcp-server(retrieve_work_item/retrieve_work_item_by_identifiertools), but the bug is in the SDK's model, not the MCP server. - Server tested against: self-hosted Plane Community 1.3.1.
Workaround in use
Using list_work_items (which doesn't hit this validation path) instead of retrieve_work_item*, and filtering client-side.
- Langage dominant
- Python
- Étoiles
- 17
- Forks
- 26
- Merge moyen
- 1 j 5 h
- PR mergées (30 j)
- 1
Préparer son environnement
Ce projet ne fournit ni conteneur de développement, ni Dockerfile, ni guide de contribution : l'installation est à votre charge. Commencez par son README, et consultez notre guide de la première contribution pour les étapes générales.
Par où commencer
- Lisez l'issue en entier, puis le guide de contribution du projet.
- Signalez en commentaire que vous la prenez — cela évite que deux personnes fassent le même travail.
- Forkez le dépôt et travaillez sur une branche.
- Ouvrez une pull request qui référence le numéro de l'issue.
Autres issues de makeplane/plane-python-sdk
-
[bug]: update() strips None values via exclude_none=True, making it impossible to clear nullable fieldsPeut-être pris Une pull request liée à cette issue est ouverte ou déjà fusionnée. Ouverte
Difficulté 4/5 3-5 jours Accessibilité débutants 45/100
-
fix: WorkItemAttachments.create() raises ValidationError on actual Plane responsePeut-être pris @volodchenkov l’a pris il y a 154 jours. Ouverte
Difficulté 3/5 1-2 jours Accessibilité débutants 68/100
-
Difficulté 5/5 Plus d'une semaine Accessibilité débutants 15/100
-
Difficulté 5/5 Plus d'une semaine Accessibilité débutants 15/100
-
Pydantic Error on Work ItemOuverte
Difficulté 3/5 1-2 jours Accessibilité débutants 45/100
Toutes les issues de makeplane/plane-python-sdk
Issues similaires
-
Difficulté 2/5 1-3 heures Accessibilité débutants 68/100
Les mainteneurs répondent en général sous 3 jours
-
Difficulté 2/5 1-3 heures Accessibilité débutants 88/100
modelcontextprotocol/python-sdk#3648 ·
Les mainteneurs répondent en général sous 1 jour
-
docs good first issue
Difficulté 2/5 1-3 heures Accessibilité débutants 78/100
VenetoStato/giorgio#6 ·
-
Difficulté 2/5 1-3 heures Accessibilité débutants 74/100
Les mainteneurs répondent en général sous 1 jour
-
Claiming namespace ddalusOuverte
Difficulté 1/5 Moins d'une heure Accessibilité débutants 70/100
EclipseFdn/open-vsx.org#13831 ·
Les mainteneurs répondent en général sous 1 jour