diff --git a/src/php/OperationMapper.php b/src/php/OperationMapper.php
index 737aff3ac6123592e46dc2f7da12b9a021aa236c..2e29eaee190ccec8a3b4736b1c91c34fa80ddc21 100644
--- a/src/php/OperationMapper.php
+++ b/src/php/OperationMapper.php
@@ -40,6 +40,7 @@ use Irstea\NgModelGeneratorBundle\Models\Types\Operations\Path;
 use Irstea\NgModelGeneratorBundle\Models\Types\Placeholder;
 use Irstea\NgModelGeneratorBundle\Models\Types\Reference;
 use Irstea\NgModelGeneratorBundle\Models\Types\Resources\Collection;
+use Irstea\NgModelGeneratorBundle\Models\Types\Resources\Representation;
 use Irstea\NgModelGeneratorBundle\Models\Types\Type;
 use Irstea\NgModelGeneratorBundle\Models\Types\Union;
 
@@ -184,6 +185,12 @@ final class OperationMapper
             implode(', ', $callParameters)
         );
 
+        /** @var Representation|null $repr */
+        $repr = $returnType->findType(Representation::class);
+        if ($repr === null || !$repr->hasProperty('@id')) {
+            return $clientCall;
+        }
+
         $opDef = $this->operation->getOpDef();
 
         if ($opDef->isGetCollection()) {