Skip to content

[Bug]: extra fields ['body', 'id'] not permitted when submitting a new run #2173

@un-def

Description

@un-def

Steps to reproduce

  1. Use master version client (unreleased 0.18.34)
  2. Use release version server (<= 0.18.33)
  3. Submit a new run with a name that hasn't been used yet

Actual behaviour

❱ dstack apply -f dev-environment.dstack.yml --name devenv-new
[12:48:16] DEBUG    dstack.api._public.repos:126 Loading repo config
           DEBUG    dstack.api.server:124 POST /api/project/un-def/repos/get
[12:48:17] DEBUG    dstack.api._public.runs:535 Getting run plan
           DEBUG    dstack.api.server:124 POST /api/project/un-def/runs/get_plan
[12:48:27] DEBUG    dstack.api.server:124 POST /api/project/un-def/runs/get
Server validation error:
{'detail': [{'loc': ['body', 'id'],
             'msg': 'extra fields not permitted',
             'type': 'value_error.extra'}]}
           DEBUG    dstack._internal.cli.main:84 Server validation error:
                    {'detail': [{'loc': ['body', 'id'],
                                 'msg': 'extra fields not permitted',
                                 'type': 'value_error.extra'}]}
                    Traceback (most recent call last):
                      File "/home/def/dev/dstack/src/dstack/_internal/cli/main.py", line 81, in main
                        args.func(args)
                        ~~~~~~~~~^^^^^^
                      File "/home/def/dev/dstack/src/dstack/_internal/cli/commands/apply.py", line 123, in _command
                        configurator.apply_configuration(
                        ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^
                            conf=configuration,
                            ^^^^^^^^^^^^^^^^^^^
                        ...<4 lines>...
                            repo=repo,
                            ^^^^^^^^^^
                        )
                        ^
                      File "/home/def/dev/dstack/src/dstack/_internal/cli/services/configurators/run.py", line 95, in apply_configuration
                        run_plan = self.api.runs.get_plan(
                            configuration=conf,
                        ...<15 lines>...
                            termination_policy_idle=profile.termination_idle_time,
                        )
                      File "/home/def/dev/dstack/src/dstack/api/_public/runs.py", line 541, in get_plan
                        run_plan.current_resource = self._api_client.runs.get(self._project, run_name)
                                                    ~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^
                      File "/home/def/dev/dstack/src/dstack/api/server/_runs.py", line 58, in get
                        resp = self._request(f"/api/project/{project_name}/runs/get", body=body.json())
                      File "/home/def/dev/dstack/src/dstack/api/server/__init__.py", line 147, in _request
                        raise ClientError(f"Server validation error: \n{formatted_error}")
                    dstack._internal.core.errors.ClientError: Server validation error:
                    {'detail': [{'loc': ['body', 'id'],
                                 'msg': 'extra fields not permitted',
                                 'type': 'value_error.extra'}]}

Expected behaviour

No response

dstack version

master

Server logs

No response

Additional information

No response

Metadata

Metadata

Assignees

No one assigned

    Labels

    bugSomething isn't workingmajor

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions