In the Fixlet Debugger you may get that for any substitution error.
Without parentheses, this would try to append the string “\ctx.py” to the file "parameter “CTX”, and appending a string to a file object is invalid. I think it’s just a matter of parentheses to append the string to the filename before trying to open it
parameter "FileDetails" = {(creation time of it, modification time of it, size of it, sha1 of it) of files (parameter "CTX" & "\ctx.py")}
You can also have a problem though with how you’re using the parameters to begin with - if there are multiple matching paths in the file, the results are all crammed together like “C:\path1C:\path2”.
Probably better to just have an Analysis that returns multiple results, with the details for each, instead of trying to put them all together in a single parameter.
For an Analysis Property, you might use the relevance
(pathname of it, creation time of it, modification time of it, size of it, sha1 of it) of files ((it as trimmed string & "\ctx.py") of (following texts of firsts "Location:" of lines of file ("C:\temp\PythonCTX.txt")))