microsoftgraph / microsoftgraph/msgraph-sdk-php
Invalid horizontalSectionLayoutType enum value flexible
Nobody has claimed this yet.
- Dominant language
- PHP
- Stars
- 669
- Forks
- 150
- Avg merge
- 15h 21m
- Merged PRs (30d)
- 3
Description
Describe the bug
When loading an expanded canvasLayout using the new flexible layout you get an Invalid enum value flexible exception.
The new flexible layout type is missing from Microsoft\Graph\Generated\Models\HorizontalSectionLayoutType
Expected behavior
Page content is loaded without error
How to reproduce
$requestConfig = new GraphSitePageRequestBuilderGetRequestConfiguration();
$requestConfig->queryParameters = GraphSitePageRequestBuilderGetRequestConfiguration::createQueryParameters();
$requestConfig->queryParameters->select = ['ID', 'canvasLayout'];
$requestConfig->queryParameters->expand = ['canvasLayout'];
$graphServiceClient->sites()->bySiteId(...)->pages()->graphSitePage()->get($requestConfig)->wait()
SDK Version
No response
Latest version known to work for scenario above?
No response
Known Workarounds
No response
Debug output
Click to expand log
InvalidArgumentException {#3210 // app/Integrations/SharePointIntegration.php:653
#message: "Invalid enum value flexible"
#code: 0
#file: "
/var/www/html/vendor
/microsoft/kiota-abstractions/
src/Enum.php"
#line: 57
trace: {
/var/www/html/vendor
/microsoft/kiota-abstractions/
src/Enum.php:57 {
Microsoft\Kiota\Abstractions
Enum->__construct(string $value) …
› if (!self::has($component)) {
› throw new InvalidArgumentException("Invalid enum value $value");
› }
}
/var/www/html/vendor
/microsoft/kiota-serialization-json/
src/JsonParseNode.php:170 {
Microsoft\Kiota\Serialization\Json
JsonParseNode->getEnumValue(string $targetEnum): Enum …
› }
› return new $targetEnum($this->jsonNode);
› }
}
/var/www/html/vendor
/microsoft/microsoft-graph/
src/Generated/Models/HorizontalSection.php:63 {
Microsoft\Graph\Generated\Models\HorizontalSection->Microsoft\Graph\Generated\Models
{closure} …
› 'emphasis' => fn(ParseNode $n) => $o->setEmphasis($n->getEnumValue(SectionEmphasisType::class)),
› 'layout' => fn(ParseNode $n) => $o->setLayout($n->getEnumValue(HorizontalSectionLayoutType::class)),
› ]);
}
/var/www/html/vendor
/microsoft/kiota-serialization-json/
src/JsonParseNode.php:147 {
Microsoft\Kiota\Serialization\Json
JsonParseNode->assignFieldValues($result): void …
› if ($deserializer !== null) {
› $deserializer(new JsonParseNode($value));
› } else {
}
/var/www/html/vendor
/microsoft/kiota-serialization-json/
src/JsonParseNode.php:120 {
Microsoft\Kiota\Serialization\Json
JsonParseNode->getObjectValue(array $type): Parsable …
› }
› $this->assignFieldValues($result);
› if ($this->getOnAfterAssignFieldValues() !== null){
}
/var/www/html/vendor
/microsoft/kiota-serialization-json/
src/JsonParseNode.php:95 {
Microsoft\Kiota\Serialization\Json\JsonParseNode::Microsoft\Kiota\Serialization\Json
{closure} …
› $result = array_map(static function ($val) use($type) {
› return $val->getObjectValue($type);
› }, array_map(static function ($value) {
}
Microsoft\Kiota\Serialization\Json\JsonParseNode::Microsoft\Kiota\Serialization\Json
{closure}() {}
/var/www/html/vendor
/microsoft/kiota-serialization-json/
src/JsonParseNode.php:94 {
Microsoft\Kiota\Serialization\Json
JsonParseNode->getCollectionOfObjectValues(array $type): ?array …
› }
› $result = array_map(static function ($val) use($type) {
› return $val->getObjectValue($type);
}
/var/www/html/vendor
/microsoft/microsoft-graph/
src/Generated/Models/CanvasLayout.php:35 {
Microsoft\Graph\Generated\Models\CanvasLayout->Microsoft\Graph\Generated\Models
{closure} …
› return array_merge(parent::getFieldDeserializers(), [
› 'horizontalSections' => fn(ParseNode $n) => $o->setHorizontalSections($n->getCollectionOfObjectValues([HorizontalSection::class, 'createFromDiscriminatorValue'])),
› 'verticalSection' => fn(ParseNode $n) => $o->setVerticalSection($n->getObjectValue([VerticalSection::class, 'createFromDiscriminatorValue'])),
}
/var/www/html/vendor
/microsoft/kiota-serialization-json/
src/JsonParseNode.php:147 {
Microsoft\Kiota\Serialization\Json
JsonParseNode->assignFieldValues($result): void …
› if ($deserializer !== null) {
› $deserializer(new JsonParseNode($value));
› } else {
}
/var/www/html/vendor
/microsoft/kiota-serialization-json/
src/JsonParseNode.php:120 {
Microsoft\Kiota\Serialization\Json
JsonParseNode->getObjectValue(array $type): Parsable …
› }
› $this->assignFieldValues($result);
› if ($this->getOnAfterAssignFieldValues() !== null){
}
/var/www/html/vendor
/microsoft/microsoft-graph/
src/Generated/Models/SitePage.php:47 {
Microsoft\Graph\Generated\Models\SitePage->Microsoft\Graph\Generated\Models
{closure} …
› return array_merge(parent::getFieldDeserializers(), [
› 'canvasLayout' => fn(ParseNode $n) => $o->setCanvasLayout($n->getObjectValue([CanvasLayout::class, 'createFromDiscriminatorValue'])),
› 'promotionKind' => fn(ParseNode $n) => $o->setPromotionKind($n->getEnumValue(PagePromotionType::class)),
}
/var/www/html/vendor
/microsoft/kiota-serialization-json/
src/JsonParseNode.php:147 {
Microsoft\Kiota\Serialization\Json
JsonParseNode->assignFieldValues($result): void …
› if ($deserializer !== null) {
› $deserializer(new JsonParseNode($value));
› } else {
}
/var/www/html/vendor
/microsoft/kiota-serialization-json/
src/JsonParseNode.php:120 {
Microsoft\Kiota\Serialization\Json
JsonParseNode->getObjectValue(array $type): Parsable …
› }
› $this->assignFieldValues($result);
› if ($this->getOnAfterAssignFieldValues() !== null){
}
/var/www/html/vendor
/microsoft/kiota-serialization-json/
src/JsonParseNode.php:95 {
Microsoft\Kiota\Serialization\Json\JsonParseNode::Microsoft\Kiota\Serialization\Json
{closure} …
› $result = array_map(static function ($val) use($type) {
› return $val->getObjectValue($type);
› }, array_map(static function ($value) {
}
Microsoft\Kiota\Serialization\Json\JsonParseNode::Microsoft\Kiota\Serialization\Json
{closure}() {}
/var/www/html/vendor
/microsoft/kiota-serialization-json/
src/JsonParseNode.php:94 {
Microsoft\Kiota\Serialization\Json
JsonParseNode->getCollectionOfObjectValues(array $type): ?array …
› }
› $result = array_map(static function ($val) use($type) {
› return $val->getObjectValue($type);
}
/var/www/html/vendor
/microsoft/microsoft-graph/
src/Generated/Models/SitePageCollectionResponse.php:35 {
Microsoft\Graph\Generated\Models\SitePageCollectionResponse->Microsoft\Graph\Generated\Models
{closure} …
› return array_merge(parent::getFieldDeserializers(), [
› 'value' => fn(ParseNode $n) => $o->setValue($n->getCollectionOfObjectValues([SitePage::class, 'createFromDiscriminatorValue'])),
› ]);
}
/var/www/html/vendor
/microsoft/kiota-serialization-json/
src/JsonParseNode.php:147 {
Microsoft\Kiota\Serialization\Json
JsonParseNode->assignFieldValues($result): void …
› if ($deserializer !== null) {
› $deserializer(new JsonParseNode($value));
› } else {
}
/var/www/html/vendor
/microsoft/kiota-serialization-json/
src/JsonParseNode.php:120 {
Microsoft\Kiota\Serialization\Json
JsonParseNode->getObjectValue(array $type): Parsable …
› }
› $this->assignFieldValues($result);
› if ($this->getOnAfterAssignFieldValues() !== null){
}
/var/www/html/vendor
/microsoft/kiota-http-guzzle/
src/GuzzleRequestAdapter.php:170 {
Microsoft\Kiota\Http\GuzzleRequestAdapter->Microsoft\Kiota\Http
{closure} …
› $this->setResponseType($targetCallable[0], $span);
› return $rootNode->getObjectValue($targetCallable);
› }
}
/var/www/html/vendor
/php-http/promise/
src/FulfilledPromise.php:39 {
Http\Promise
FulfilledPromise->then(?callable $onFulfilled = null, ?callable $onRejected = null) …
› try {
› return new self($onFulfilled($this->result));
› } catch (\Exception $e) {
}
/var/www/html/vendor
/microsoft/kiota-http-guzzle/
src/GuzzleRequestAdapter.php:145 {
Microsoft\Kiota\Http
GuzzleRequestAdapter->sendAsync(RequestInformation $requestInfo, array $targetCallable, ?array $errorMappings = null): Promise …
› $responseMessage = $this->getHttpResponseMessage($requestInfo, '', $span);
› $finalResponse = $responseMessage->then(
› function (ResponseInterface $result) use ($targetCallable, $requestInfo, $errorMappings, &$span) {
}
/var/www/html/vendor
/microsoft/microsoft-graph/
src/Generated/Sites/Item/Pages/GraphSitePage/GraphSitePageRequestBuilder.php:53 {
Microsoft\Graph\Generated\Sites\Item\Pages\GraphSitePage
GraphSitePageRequestBuilder->get(?GraphSitePageRequestBuilderGetRequestConfiguration $requestConfiguration = null): Promise …
› ];
› return $this->requestAdapter->sendAsync($requestInfo, [SitePageCollectionResponse::class, 'createFromDiscriminatorValue'], $errorMappings);
› }
}
}
}
Configuration
No response
Other information
No response
Contributor guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Research direction
Start with Microsoft\Graph\Generated\Models\HorizontalSectionLayoutType and the deserialization path in src/Generated/Models/HorizontalSection.php. Reproduce the expanded canvasLayout request described in the issue, then verify that loading a page with the flexible layout no longer raises Invalid enum value flexible.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- php
- Domain
- api
- Issue type
- Bug
- Difficulty
- 1/5
- Estimated time
- Under an hour
- Activity status
- Stale
- Clarity
- Clearly specified
- Newbie friendliness
- 48/100