Skip to content

microsoft.graph.onPremisesPublishing wrong serialization #1542

Description

@cwiph

Describe the bug

Same bug as in the PHP SDK from 2025

microsoftgraph/msgraph-beta-sdk-php#356

from msgraph_beta import GraphServiceClient as BetaClient
from msgraph_beta.generated.models.application import Application as Application
from msgraph_beta.generated.models.on_premises_publishing import OnPremisesPublishing
from msgraph_beta.generated.models.external_authentication_type import ExternalAuthenticationType

request_body = Application(
    on_premises_publishing = OnPremisesPublishing(
        external_authentication_type=ExternalAuthenticationType.Passthru,
        internal_url="http://localhost:65001",
        external_url="https://whatever",
        is_http_only_cookie_enabled=False,
        is_on_prem_publishing_enabled=True,
        is_persistent_cookie_enabled=False,
        is_secure_cookie_enabled=False,
        is_state_session_enabled=False,
        is_translate_host_header_enabled=False,
        is_translate_links_in_body_enabled=False,
        is_backend_certificate_validation_enabled=False
    ),
)

from kiota_serialization_json.json_serialization_writer import JsonSerializationWriter
writer = JsonSerializationWriter()
request_body.serialize(writer)
print(writer.get_serialized_content().decode('utf-8'))

Output:

{"@odata.type": "#microsoft.graph.application", "onPremisesPublishing": {"externalAuthenticationType": "passthru", "externalUrl": "https://whatever", "internalUrl": "http://localhost:65001", "isBackendCertificateValidationEnabled": false, "isHttpOnlyCookieEnabled": false, "isOnPremPublishingEnabled": true, "isPersistentCookieEnabled": false, "isSecureCookieEnabled": false, "isStateSessionEnabled": false, "isTranslateHostHeaderEnabled": false, "isTranslateLinksInBodyEnabled": false}}

await beta_client.applications.by_application_id(app.application.id).patch(request_body) then fails with

        APIError
        Code: 400
        message: None
        error: MainError(additional_data={}, code='InvalidJson_BadRequest', details=None, inner_error=InnerError(additional_data={}, client_request_id='xxxx', date=datetime.datetime(2026, 7, 10, 8, 49, 27), odata_type=None, request_id='xxxx'), message='Valid JSON content expected.', target=None)

Expected behavior

proper error message and properly serialized data sent to the backend

How to reproduce

see above

SDK Version

1.59.0

Latest version known to work for scenario above?

No response

Known Workarounds

        request_body = BetaApplication(
            additional_data = {
                "microsoft.graph.onPremisesPublishing": {
                    "@odata.type": "#microsoft.graph.onPremisesPublishing",
                    "externalAuthenticationType": "passthru",
                    "internalUrl": "http://localhost:65001",
                    "externalUrl": EXTERNAL_URL,
                    "isHttpOnlyCookieEnabled": False,
                    "isOnPremPublishingEnabled": True,
                    "isPersistentCookieEnabled": False,
                    "isSecureCookieEnabled": False,
                    "isStateSessionEnabled": False,
                    "isTranslateHostHeaderEnabled": False,
                    "isTranslateLinksInBodyEnabled": False,
                    "isBackendCertificateValidationEnabled": False
                }
            }
        )

Debug output

No response

Configuration

No response

Other information

No response

Metadata

Metadata

Assignees

No one assigned

    Labels

    status:waiting-for-triageAn issue that is yet to be reviewed or assignedtype:bugA broken experience

    Type

    No type

    Fields

    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions