Hacktoberfest 2026 : les issues que les mainteneurs ont marquées pour octobre, ouvertes et accessibles aux débutants. Parcourir les issues Hacktoberfest

DenormalizationViolationFactory crash when GroupSequence is used

Fermée
#8,639 0 commentaires 0 réactions 0 personnes assignées Voir sur GitHub

Les mainteneurs répondent en général sous 1 jour

@VincentLanglet y travaille déjà.

Depuis le 6/10/2026.

  • #8645 par @VincentLanglet — ouverte

Évaluation

Difficulté
3/5
Temps estimé
1-2 jours
Accessibilité débutants
64/100
Type d'issue
Bug
Clarté
Plutôt claire
Activité
Active
Stack technique
php, symfony

Piste de recherche

Start with src/Validator/DenormalizationViolationFactory.php around collectConstraints() and the reported call at line 130; compare how src/Symfony/Validator/Metadata/Property/ValidatorPropertyMetadataFactory.php handles GroupSequence. Reproduce with the provided PATCH test and GroupSequence; done when validation returns the expected 400 response without the type error and the relevant tests pass.

Rédigé par le modèle d'indexation à partir du texte de l'issue.

Description

API Platform version(s) affected: 5.0.2

Description

I have a patch operation

new Patch(
            denormalizationContext: ['groups' => ['update:slug-target']],
            security: "is_granted('slug_target.update', object)",
            validationContext: [
                'groups' => new Assert\GroupSequence(['Requirements', ['SlugTarget', 'update:slug-target']]),
            ],
        ),

which was working fine on 4.3. As soon as I bump on 5.0 I get an error in one of my tests

An error occurred","detail":"ApiPlatform\\Validator\\DenormalizationViolationFactory::collectConstraints(): Argument #3 ($validationGroups) must be of type ?array, Symfony\\Component\\Validator\\Constraints\\GroupSequence given, called in \/app\/vendor\/api-platform\/validator\/DenormalizationViolationFactory.php on line 130

My test was

$client->request('PATCH', '/slug-targets/'.$uuid, [
            'json' => ['quality' => null],
            'headers' => ['Content-Type' => 'application/merge-patch+json'],
        ]);
        static::assertResponseStatusCodeSame(400);

The purpose was to test the constraint

#[Assert\Choice(choices: [TranslationQuality::REVIEWED], message: 'slug_target.quality.choices', groups: ['update:slug-target'])]

applied on the quality field.

Possible Solution

It's clear that GroupSequence are not handled here @soyuka
https://github.com/api-platform/core/blob/6f77a4d70fea96bdc1c259749cecfdeb135e9704/src/Validator/DenormalizationViolationFactory.php#L129-L130

I'm not sure about the purpose of the DenormalizationViolationFactory class/method but maybe there is something to copy from the ValidatorPropertyMetadataFactory.
https://github.com/api-platform/core/blob/6f77a4d70fea96bdc1c259749cecfdeb135e9704/src/Symfony/Validator/Metadata/Property/ValidatorPropertyMetadataFactory.php#L155-L197

Langage dominant
PHP
Étoiles
2.6k
Forks
989
Merge moyen
2 j 4 h
PR mergées (30 j)
90

Préparer son environnement

Par où commencer

  1. Lisez l'issue en entier, puis le guide de contribution du projet.
  2. Signalez en commentaire que vous la prenez — cela évite que deux personnes fassent le même travail.
  3. Forkez le dépôt et travaillez sur une branche.
  4. Ouvrez une pull request qui référence le numéro de l'issue.

Autres issues de api-platform/core

Toutes les issues de api-platform/core

Issues similaires

Plus d'issues PHP

Recevez les nouvelles issues par e-mail

Un résumé court des issues GitHub adaptées aux débutants.