1.35.0 (2026-09-08)
Bugs Fixed
- Simplified schedule validation errors so invalid local job paths report the relevant file error instead of errors from every supported job schema.
- Fixed internal pipeline
Commandnode dropping node-level interactiveservices(SSH, JupyterLab, TensorBoard, VS Code, etc.) during serialization, which prevented interactive endpoints from being created for Singularity jobs. Theservicesare now serialized into the pipeline REST request and round-tripped on deserialization, matching the publicCommandnode behavior. - Fixed
MLClient.jobs.create_or_update,archive, andrestorefailing for previously-fetched jobs across all job types by routing metadata-only edits through the RunHistory PATCH endpoint. - Fixed
DeploymentTemplate.creation_contextalways beingNonewhen retrieved viaget()orlist(). The created/modified timestamps and identity returned by the service (ascreatedTime/modifiedTime/createdBy) are now populated oncreation_context, makingDeploymentTemplateconsistent withModelandEnvironment. - Fixed
DeploymentTemplate.creation_context.last_modified_byalways beingNoneeven after the service began returning the modifying identity. The service sends it as a flattenedmodifiedByfield (top-level forget(), nested underpropertiesforlist()) alongside a present-but-nulllastModifiedBy;last_modified_byis now populated frommodifiedBy, matching howcreated_byis read. - Fixed
deployment_templates.list(name=...)raisingAttributeError: 'str' object has no attribute 'request_timeout'. In the list response,requestSettings/livenessProbe/readinessProbearrive as stringified dicts nested underproperties; these are now parsed before conversion, givinglist()parity withmodels.list()/environments.list(). - Fixed
deployment_templates.get(name)failing with a 404 (DeploymentTemplate {name}:latest not found) when no version was supplied, because the literal string"latest"was sent as the version. The latest version is now resolved client-side (the service exposes nolatestlabel and no server-side ordering), andget()accepts alabelkeyword (label="latest"resolves to the latest version) mirroringmodels.get().delete(name)resolves the latest version the same way. - Fixed
models.get(name, label="latest")returning aModelwhosedefault_deployment_template/allowed_deployment_templatesreferences hadasset_id=None. Label resolution goes through the version list endpoint (top=1), whose items omit the deployment-template references; for registry models the resolved version is now re-fetched through the get endpoint, so the label path hydrates these references identically to the explicitversion=path. - Added
MLClient.jobs.begin_delete(name)to delete a job. - Fixed loading a registered MLTable data asset via
mltable.load("azureml://.../data/<name>/versions/<version>")failing withAttributeError: 'DataVersionEntity' object has no attribute 'additional_properties'. When thedataset_dataplaneclient was migrated to the TypeSpec (hybrid) model,DataVersionEntitystopped exposing the msrestadditional_propertiesattribute that themltablepackage reads (isV2/legacyDataflow) on the local resolution path. The attribute is now restored as a compatibility shim returning the un-modeled wire keys, so the on-the-wire contract is unchanged.
Other Changes
- Migrated SDK entities and their consumers off the per-version msrest REST clients onto the shared
arm_ml_servicehybrid client. This is an internal change; the on-the-wire request/response contract is unchanged.