GET /api/v2.0/system/version/ no longer includes "SCALE" in version string, breaking detection logic

Title: GET /api/v2.0/system/version/ no longer includes “scale” in version string, breaking detection logic

Description: In TrueNAS SCALE Fangtooth 25.04, the API endpoint GET /api/v2.0/system/version/ returns:

"TrueNAS-25.04.0"

Previously, this version string included "scale" (e.g., "TrueNAS-SCALE-24.10.2.1"), which was used by external tools like democratic-csi driver to detect whether the instance is running TrueNAS SCALE.

This change breaks the getIsScale() method in democratic-csi code:

if (!(await httpApiClient.getIsScale())) {
        throw new GrpcError(
          grpc.status.FAILED_PRECONDITION,
          driver is only availalbe with TrueNAS SCALE
        );
      }
...
async getIsScale() { 
  const systemVersion = await this.getSystemVersion();
  if (systemVersion.v2 && systemVersion.v2.toLowerCase().includes("scale")) {
    return true;
  }
  return false;
}

As a result, errors like this are thrown:

GrpcError: driver is only availalbe with TrueNAS SCALE

Expected behavior:

  1. The version string should include "scale" again (e.g., "TrueNAS-SCALE-25.04.0")
    Impact:
  • Breaks CSI driver integrations that rely on version string parsing.

  • Affects automation and deployment tools.
    Environment:

  • TrueNAS SCALE 25.04 (Fangtooth)

  • democratic-csi integration

Starting in 25.04 API consumers can get the unauthenticated endpoint api/versions to retrieve the versions of the TrueNAS API that are supported.

>>> requests.get('http://127.0.0.1/api/versions').json()
['v24.10', 'v25.04.0', 'v25.04.1', 'v25.10.0']

But the product isn’t called “SCALE” any more, probably because all of the “scale” features have been de-scoped. It’s now “TrueNAS Community Edition” (or presumably “Enterprise Edition” if you have that license). This sounds like a bug in the democratic-csi integration, not in TrueNAS.

Right. We’ve never made any guarantees about how version strings are generated, so this is definitely not a TrueNAS bug. An example of a bug here would be if we returned something like “TrueNAS-???” or an incorrect version number like “25.4000” for “25.04.0”. That said, the democratic-csi is already making fixes on their end.