P4 "Warning, empty changelog. Have you run checkout?"

I am experiencing an issue where a declarative pipeline is not triggering a stage that uses a when block on a changeset due to an empty changelog

Warning, empty changelog. Have you run checkout?

The pipeline is a multi-branch configuration that uses perforce and has “Auto cleanup and sync” as part of the populate options. It uses streams.

When performing a scan (manually or via pollSCM) on the multi-branch it identifies the latest changelist correctly and triggers a build. The stage does not execute though due to the changeset condition with the above warning.

The when block looks like this:

when {
      anyOf {
          triggeredBy 'UserIdCause'
          changeset "**/*.cpp"
          changeset "**/*.h"
          changeset "**/*.cs"
          changeset "**/*.uproject"
          changeset "**/*.uplugin"
          changeset "**/*.uasset"
          changeset "**/*.ini"
      }
  }

Does anyone have any idea what might be the cause or areas to explore to try and remedy?

You can try using the admin script console to confirm that your run has a changeset following the methods used here: