Skip to content

[Bug]: pkg.version broken on salt-ssh since 3007.10 #68570

@papegaaij

Description

@papegaaij

What happened?

Since 3007.10 pkg.version is no longer working on salt-ssh calls when rendering the jinja2 templates for the states. In 3007.9 and earlier, this is working fine. I suspect this is a regression caused by #68496.

For example, if you take this state:

{% set saltcurrent = salt['pkg.version']('salt','salt-api','salt-master','salt-minion','salt-ssh') %}

lock-salt-versions:
  pkg.installed:
    - pkgs:
      - salt: {{ saltcurrent['salt'] }}
      - salt-api: {{ saltcurrent['salt-api'] }}
      - salt-master: {{ saltcurrent['salt-master'] }}
      - salt-minion: {{ saltcurrent['salt-minion'] }}
      - salt-ssh: {{ saltcurrent['salt-ssh'] }}
    - ignore_epoch: True
    - hold: True
    - update_holds: True
    - aggregate: False

You get this error when trying to apply it via salt-ssh:

2025-12-28 22:24:24,789 [salt.utils.vt.Terminal.PID-79981.STDERR:595 ][TRACE   ][79688] 'pkg.version' is not available.
2025-12-28 22:24:25,250 [salt.client.ssh  :32  ][TRACE   ][79688] STDOUT 10.254.216.155
/bin/scp
_edbc7885e4f9aac9b83b35999b68d015148caf467b78fa39c05f669c0ff89878

2025-12-28 22:24:25,251 [salt.client.ssh  :32  ][TRACE   ][79688] STDERR 10.254.216.155
Authorized uses only. All activity may be monitored and reported.
SALT_ARGV: ['/opt/saltstack/salt/bin/python3', '/srv/thindir/salt-call', '--retcode-passthrough', '--local', '--metadata', '--out', 'json', '-l', 'quiet', '-c', '/srv/thindir', '--', 'pkg.version', '"salt"', '"salt-api"', '"salt-master"', '"salt-minion"', '"salt-ssh"']
_edbc7885e4f9aac9b83b35999b68d015148caf467b78fa39c05f669c0ff89878
'pkg.version' is not available.

2025-12-28 22:24:25,251 [salt.client.ssh  :1561][DEBUG   ][79688] RETCODE 10.254.216.155: 255
2025-12-28 22:24:25,252 [salt.utils.templates:223 ][ERROR   ][79688] Rendering exception occurred
Traceback (most recent call last):
  File "/opt/saltstack/salt/lib/python3.10/site-packages/salt/utils/templates.py", line 469, in render_jinja_tmpl
    output = template.render(**decoded_context)
  File "/opt/saltstack/salt/lib/python3.10/site-packages/jinja2/environment.py", line 1295, in render
    self.environment.handle_exception()
  File "/opt/saltstack/salt/lib/python3.10/site-packages/jinja2/environment.py", line 942, in handle_exception
    raise rewrite_traceback_stack(source=source)
  File "<template>", line 4, in top-level template code
  File "/opt/saltstack/salt/lib/python3.10/site-packages/jinja2/sandbox.py", line 401, in call
    return __context.call(__obj, *args, **kwargs)
  File "/opt/saltstack/salt/lib/python3.10/site-packages/salt/client/ssh/wrapper/__init__.py", line 258, in caller
    return parse_ret(stdout, stderr, retcode, result_only=True)
  File "/opt/saltstack/salt/lib/python3.10/site-packages/salt/client/ssh/wrapper/__init__.py", line 389, in parse_ret
    raise error(
salt.client.ssh.wrapper.SSHCommandExecutionError: The command resulted in a non-zero exit code: 'pkg.version' is not available.

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "/opt/saltstack/salt/lib/python3.10/site-packages/salt/utils/templates.py", line 210, in render_tmpl
    output = render_str(tmplstr, context, tmplpath)
  File "/opt/saltstack/salt/lib/python3.10/site-packages/salt/utils/templates.py", line 491, in render_jinja_tmpl
    raise SaltRenderError(
salt.exceptions.SaltRenderError: Problem running salt function in Jinja template: The command resulted in a non-zero exit code: 'pkg.version' is not available.; line 4

---
# -*- coding: utf-8 -*-
# vim: ft=yaml ts=2 sw=2 expandtab

{% set saltcurrent = salt['pkg.version']('salt','salt-api','salt-master','salt-minion','salt-ssh') %}    <======================

lock-salt-versions:
  pkg.installed:
    - pkgs:
      - salt: {{ saltcurrent['salt'] }}
[...]
---

Type of salt install

Official rpm

Major version

3007.x

What supported OS are you seeing the problem on? Can select multiple. (If bug appears on an unsupported OS, please open a GitHub Discussion instead)

almalinux-9

salt --versions-report output

Salt Version:
          Salt: 3007.10
 
Python Version:
        Python: 3.10.19 (main, Dec 16 2025, 10:12:17) [GCC 11.2.0]
 
Dependency Versions:
          cffi: 2.0.0
      cherrypy: unknown
  cryptography: 42.0.5
      dateutil: 2.8.2
     docker-py: 7.1.0
         gitdb: Not Installed
     gitpython: Not Installed
        Jinja2: 3.1.6
       libgit2: Not Installed
  looseversion: 1.3.0
      M2Crypto: Not Installed
          Mako: Not Installed
       msgpack: 1.0.7
  msgpack-pure: Not Installed
  mysql-python: Not Installed
     packaging: 24.0
     pycparser: 2.21
      pycrypto: Not Installed
  pycryptodome: 3.19.1
        pygit2: Not Installed
  python-gnupg: 0.5.5
        PyYAML: 6.0.1
         PyZMQ: 25.1.2
        relenv: 0.22.1
         smmap: Not Installed
       timelib: 0.3.0
       Tornado: 6.5.2
           ZMQ: 4.3.4
 
Salt Package Information:
  Package Type: onedir
 
System Versions:
          dist: almalinux 9.7 Moss Jungle Cat
        locale: utf-8
       machine: x86_64
       release: 5.14.0-611.13.1.el9_7.x86_64
        system: Linux
       version: AlmaLinux 9.7 Moss Jungle Cat

Metadata

Metadata

Assignees

No one assigned

    Labels

    bugbroken, incorrect, or confusing behaviorneeds-triage

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions