Skip to content

Breaking change in v2.10.x: User and Server models require new mandatory fields #1309

@achantavy

Description

@achantavy

Community Note

  • Please vote on this issue by adding a 👍
    reaction to the original
    issue to help the community and maintainers prioritize this request
  • Please do not leave "+1" or other comments that do not add relevant new information or questions, they generate
    extra noise for issue followers and do not help prioritize the request
  • If you are interested in working on this issue or have submitted a pull request, please leave a comment

Command attempted

from datetime import datetime
from dateutil.tz import tzutc
from scaleway.iam.v1alpha1 import User
from scaleway.instance.v1 import Server

# This fails with: TypeError: User.__init__() missing 4 required positional arguments:
# 'first_name', 'last_name', 'phone_number', and 'locale'
user = User(
    id="998cbe72-913f-4f55-8620-4b0f7655d343",
    email="[email protected]",
    username="[email protected]",
    organization_id="0681c477-fbb9-4820-b8d6-0eef10cfcd6d",
    created_at=datetime(2025, 3, 20, 7, 39, 54, 526837, tzinfo=tzutc()),
    updated_at=datetime(2025, 6, 20, 9, 19, 54, 496281, tzinfo=tzutc()),
    deletable=False,
    type_="owner",
    status="activated",
    mfa=True,
    account_root_user_id="db2c157f-0ae0-4f9c-aa24-bcccba549e52",
    tags=[],
    locked=False,
    last_login_at=datetime(2025, 6, 20, 9, 19, 54, 502555, tzinfo=tzutc()),
    two_factor_enabled=True,
)

# This fails with: TypeError: Server.__init__() missing 2 required positional arguments:
# 'filesystems' and 'end_of_service'
server = Server(
    id="345627e9-18ff-47e0-b73d-3f38fddb4390",
    name="demo-server",
    organization="0681c477-fbb9-4820-b8d6-0eef10cfcd6d",
    project="0681c477-fbb9-4820-b8d6-0eef10cfcd6d",
    # ... other fields omitted for brevity
    zone="fr-par-1",
)

Expected Behavior

The User and Server objects should be instantiable with the fields that were previously sufficient, or the new
fields (first_name, last_name, phone_number, locale for User and filesystems, end_of_service for Server) should
have default values or be optional parameters.

This code worked in previous SDK versions without these additional required fields.

Actual Behavior

SDK version 2.10.x introduces breaking changes where these models now require additional positional arguments:

  TypeError: User.__init__() missing 4 required positional arguments: 'first_name', 'last_name', 'phone_number', and 
  'locale'

  TypeError: Server.__init__() missing 2 required positional arguments: 'filesystems' and 'end_of_service'

These breaking changes cause existing code that creates these model instances to fail at import time.

More info

SDK-Python version: 2.10.2

Python version: 3.12.8

OS version: macOS Darwin 25.0.0

Additional context:

We'll update our test code properly but figured I'd file an issue and say hi :D

Thanks for your time!

Metadata

Metadata

Assignees

Labels

bugSomething isn't working

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions