Solution 1:

This question is very similar to another question, and the core issue is that:

the remote() wrapper is mutually-exclusive with the temp() and protected() wrappers.

Source: docs.

One solution is to explicitly mark files using local function, so it would look like this:

rule some_rule:
     output: temp(local('test.txt'))
     run: # ...