Source Control: "Query File State" not Returning Correct Data

It appears the Editor Scripting function “Query File State” isn’t returning the correct data.

For reference, this is the function (usable only in Editor Utility BPs and Widgets).

Unfortunately, this function seems to return the same values regardless of which file I access. These are:

  • Is Valid TRUE
  • Is Unknown TRUE
  • Is Current TRUE
  • (Everything Else) FALSE

For example, here’s a file in source control which has previously been added to my repo, and which I can check out.


However, the data from the “Query File State” shows the same set of data I listed above. Every file I click is “Valid,” “Unknown,” and “Current” – but nothing else.

Am I missing something with this function? Or am I missing something with Source Control causing this to remain unknown.

Thus far I have only tested with Plastic SCM and Subversion repos, testing files that were in the repo and needed check out, files I had already checked out, new files not yet added – all returning the same data.

Thanks for any insight!

I know this is an old post but I came across it when I had the same issue in 4.27.2 today.

In my case the issue was that I was passing in the asset’s path name (Looks like this: “/Game/Mannequin/Animations/ThirdPersonIdle.ThirdPersonIdle”). Even though the documentation implies that this is fine and it has a function in the code to convert it, it passed this same string to the source control to query (in my case Perforce), so Perforce assumed it was looking for a “ThirdPersonIdle” filetype.

The solution was to manually convert the filepath to a fully qualified path and take that in instead, and it then returned the correct source control information. [C:/Projects/MyProject/Content/Mannequin/Animations/ThirdPersonIdle.uasset]

Additional Note: Using the static function FPaths::ProjectContentDir() in C++ or the “Project Content Dir” node in Blueprints is an easy way to get the fully qualified Content folder automatically to replace “/Game/” in the asset’s path string so that it doesn’t have to be manually changed on each computer.