Skip to content

Conda package registry invalid when package's dependency is empty #35895

@Luohaothu

Description

@Luohaothu

Description

For uploading a conda package with 0 dependency, the conda client will report an error on later conda search. For example:

Loading channels: failed

# >>>>>>>>>>>>>>>>>>>>>> ERROR REPORT <<<<<<<<<<<<<<<<<<<<<<

    Traceback (most recent call last):
      File "/opt/homebrew/Caskroom/miniconda/base/lib/python3.13/site-packages/conda/exception_handler.py", line 28, in __call__
        return func(*args, **kwargs)
      File "/opt/homebrew/Caskroom/miniconda/base/lib/python3.13/site-packages/conda/cli/main.py", line 61, in main_subshell
        exit_code = do_call(args, parser)
      File "/opt/homebrew/Caskroom/miniconda/base/lib/python3.13/site-packages/conda/cli/conda_argparse.py", line 205, in do_call
        result = getattr(module, func_name)(args, parser)
      File "/opt/homebrew/Caskroom/miniconda/base/lib/python3.13/site-packages/conda/cli/main_search.py", line 237, in execute
        SubdirData.query_all(spec, channel_urls, subdirs),
        ~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
      File "/opt/homebrew/Caskroom/miniconda/base/lib/python3.13/site-packages/conda/core/subdir_data.py", line 207, in query_all
        result = tuple(
            chain.from_iterable(executor.map(subdir_query, channel_urls))
        )
      File "/opt/homebrew/Caskroom/miniconda/base/lib/python3.13/concurrent/futures/_base.py", line 619, in result_iterator
        yield _result_or_cancel(fs.pop())
              ~~~~~~~~~~~~~~~~~^^^^^^^^^^
      File "/opt/homebrew/Caskroom/miniconda/base/lib/python3.13/concurrent/futures/_base.py", line 317, in _result_or_cancel
        return fut.result(timeout)
               ~~~~~~~~~~^^^^^^^^^
      File "/opt/homebrew/Caskroom/miniconda/base/lib/python3.13/concurrent/futures/_base.py", line 456, in result
        return self.__get_result()
               ~~~~~~~~~~~~~~~~~^^
      File "/opt/homebrew/Caskroom/miniconda/base/lib/python3.13/concurrent/futures/_base.py", line 401, in __get_result
        raise self._exception
      File "/opt/homebrew/Caskroom/miniconda/base/lib/python3.13/concurrent/futures/thread.py", line 59, in run
        result = self.fn(*self.args, **self.kwargs)
      File "/opt/homebrew/Caskroom/miniconda/base/lib/python3.13/site-packages/conda/core/subdir_data.py", line 192, in subdir_query
        return tuple(
            SubdirData(Channel(url), repodata_fn=repodata_fn).query(
                package_ref_or_match_spec
            )
        )
      File "/opt/homebrew/Caskroom/miniconda/base/lib/python3.13/site-packages/conda/core/subdir_data.py", line 229, in query
        for prec in self._iter_records_by_name(package_name):
                    ~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^
      File "/opt/homebrew/Caskroom/miniconda/base/lib/python3.13/site-packages/conda/core/subdir_data.py", line 423, in _iter_records_by_name
        yield self._package_records[i]
              ~~~~~~~~~~~~~~~~~~~~~^^^
      File "/opt/homebrew/Caskroom/miniconda/base/lib/python3.13/site-packages/conda/core/subdir_data.py", line 111, in __getitem__
        record = PackageRecord(**record)
      File "/opt/homebrew/Caskroom/miniconda/base/lib/python3.13/site-packages/conda/auxlib/entity.py", line 754, in __call__
        instance = super().__call__(*args, **kwargs)
      File "/opt/homebrew/Caskroom/miniconda/base/lib/python3.13/site-packages/conda/models/records.py", line 499, in __init__
        super().__init__(*args, **kwargs)
        ~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^
      File "/opt/homebrew/Caskroom/miniconda/base/lib/python3.13/site-packages/conda/auxlib/entity.py", line 770, in __init__
        setattr(self, key, kwargs[key])
        ~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^
      File "/opt/homebrew/Caskroom/miniconda/base/lib/python3.13/site-packages/conda/auxlib/entity.py", line 437, in __set__
        instance.__dict__[self.name] = self.validate(
                                       ~~~~~~~~~~~~~^
            instance,
            ^^^^^^^^^
            self.box(instance, instance.__class__, val),
            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
        )
        ^
      File "/opt/homebrew/Caskroom/miniconda/base/lib/python3.13/site-packages/conda/auxlib/entity.py", line 625, in validate
        val = super().validate(instance, val)
      File "/opt/homebrew/Caskroom/miniconda/base/lib/python3.13/site-packages/conda/auxlib/entity.py", line 482, in validate
        raise ValidationError(getattr(self, 'name', 'undefined name'), val)
    conda.auxlib.exceptions.ValidationError: Value for depends cannot be None.

`$ /opt/homebrew/Caskroom/miniconda/base/bin/conda search none -c http://10.10.10.15:3000/api/packages/leo/conda`

  environment variables:
                 CIO_TEST=<not set>
    CONDA_ALLOW_SOFTLINKS=false
        CONDA_DEFAULT_ENV=base
                CONDA_EXE=/opt/homebrew/Caskroom/miniconda/base/bin/conda
             CONDA_PREFIX=/opt/homebrew/Caskroom/miniconda/base
    CONDA_PROMPT_MODIFIER=(base)
         CONDA_PYTHON_EXE=/opt/homebrew/Caskroom/miniconda/base/bin/python
               CONDA_ROOT=/opt/homebrew/Caskroom/miniconda/base
              CONDA_SHLVL=1
           CURL_CA_BUNDLE=<not set>
                 INFOPATH=/opt/homebrew/share/info:
               LD_PRELOAD=<not set>
                     PATH=/opt/homebrew/Caskroom/miniconda/base/bin:/opt/homebrew/Caskroom/minic
                          onda/base/condabin:/opt/homebrew/opt/sphinx-doc/bin:/Users/luohao/bin:
                          /Users/luohao/projects/llvm-10-
                          install/bin:/opt/homebrew/opt/llvm@11/bin:/opt/homebrew/opt/bison/bin:
                          /opt/homebrew/opt/sphinx-doc/bin:/opt/homebrew/opt/llvm/bin:/Users/luo
                          hao/Library/Python/3.9/bin:/opt/homebrew/bin:/usr/local/opt/node@12/bi
                          n:/usr/local/opt/make/libexec/gnubin:/opt/homebrew/bin:/opt/homebrew/s
                          bin:/Users/luohao/.cargo/bin:/usr/local/bin:/System/Cryptexes/App/usr/
                          bin:/usr/bin:/bin:/usr/sbin:/sbin:/var/run/com.apple.security.cryptexd
                          /codex.system/bootstrap/usr/local/bin:/var/run/com.apple.security.cryp
                          texd/codex.system/bootstrap/usr/bin:/var/run/com.apple.security.crypte
                          xd/codex.system/bootstrap/usr/appleinternal/bin:/opt/X11/bin:/Library/
                          Apple/usr/bin:/Library/TeX/texbin:/Applications/iTerm.app/Contents/Res
                          ources/utilities:/Users/luohao/.orbstack/bin:/Applications/极空间.app/Con
                          tents/Resources/app.asar.unpacked/bin/platform-tools
       REQUESTS_CA_BUNDLE=<not set>
       SCRCPY_SERVER_PATH=/Applications/极空间.app/Contents/Resources/app.asar.unpacked/bin/platfor
                          m-tools/scrcpy-server
            SSL_CERT_FILE=<not set>

     active environment : base
    active env location : /opt/homebrew/Caskroom/miniconda/base
            shell level : 1
       user config file : /Users/luohao/.condarc
 populated config files : /opt/homebrew/Caskroom/miniconda/base/.condarc
                          /Users/luohao/.condarc
          conda version : 25.9.1
    conda-build version : 25.9.0
         python version : 3.13.9.final.0
                 solver : libmamba (default)
       virtual packages : __archspec=1=m1
                          __conda=25.9.1=0
                          __osx=26.0.1=0
                          __unix=0=0
       base environment : /opt/homebrew/Caskroom/miniconda/base  (writable)
      conda av data dir : /opt/homebrew/Caskroom/miniconda/base/etc/conda
  conda av metadata url : None
           channel URLs : http://10.10.10.15:3000/api/packages/leo/conda/osx-arm64
                          http://10.10.10.15:3000/api/packages/leo/conda/noarch
                          https://conda.anaconda.org/conda-forge/osx-arm64
                          https://conda.anaconda.org/conda-forge/noarch
                          https://repo.anaconda.com/pkgs/main/osx-arm64
                          https://repo.anaconda.com/pkgs/main/noarch
                          https://repo.anaconda.com/pkgs/r/osx-arm64
                          https://repo.anaconda.com/pkgs/r/noarch
          package cache : /opt/homebrew/Caskroom/miniconda/base/pkgs
                          /Users/luohao/.conda/pkgs
       envs directories : /opt/homebrew/Caskroom/miniconda/base/envs
                          /Users/luohao/.conda/envs
               platform : osx-arm64
             user-agent : conda/25.9.1 requests/2.32.5 CPython/3.13.9 Darwin/25.0.0 OSX/26.0.1 solver/libmamba conda-libmamba-solver/25.4.0 libmambapy/2.3.2 aau/0.7.3 c/. s/. e/.
                UID:GID : 501:20
             netrc file : None
           offline mode : False


An unexpected error has occurred. Conda has prepared the above report.
If you suspect this error is being caused by a malfunctioning plugin,
consider using the --no-plugins option to turn off plugins.

Example: conda --no-plugins install <package>

Alternatively, you can set the CONDA_NO_PLUGINS environment variable on
the command line to run the command without plugins enabled.

Example: CONDA_NO_PLUGINS=true conda install <package>

If submitted, this report will be used by core maintainers to improve
future releases of conda.
Would you like conda to send this report to the core maintainers? [y/N]:

No report sent. To permanently opt-out, use

    $ conda config --set report_errors false

A valid repodata.json for this package should be:

{"info":{"subdir":"noarch"},"packages":{},"packages.conda":{"none-15.2.0-1.conda":{"build":"1","build_number":1,"depends":[],"license":"GPL-3.0-only WITH GCC-exception-3.1","license_family":"GPL","md5":"a01910513678232b1bc4af53318c76c5","name":"none","sha256":"12c627677e089bddc5f710414f39c0f0fb14f59dfb9ed532bf61090ce96b3cc4","size":3658,"subdir":"osx-arm64","timestamp":1762519733030,"version":"15.2.0"}},"removed":[],"repodata_version":1}

Gitea Version

1.24.6

Can you reproduce the bug on the Gitea demo site?

Yes

Log Gist

No response

Screenshots

No response

Git Version

No response

Operating System

No response

How are you running Gitea?

Via docker

Database

MySQL/MariaDB

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions