This command:
./bitcoin-cli.exe -testnet signrawtransactionwithwallet "02000000012164dff98653ce57c1a35c581caa993f526a118bf54e3138f04ade3aed19df8c00000 00000fdffffff01e8030000000000002251202befa14431d4cb71889ea1df7a7eaa2f1d8b9107e6 0b01564e15dabe5c0dfd3200000000" '[{"txid": "8cdf19ed3ade4af038314ef58b116a523f99aa1c585ca3c157ce5386f9df6421", "vout": 0, "scriptPubKey": "5120c38859777bc9c3294d3587035fc3823a146dabaab1fa250bc04e92f16887a065", "amount": 0.00000000}]' "DEFAULT"
At least in mainnet will output something like this:
"complete": false,
"error": "Witness program was passed an empty witness"
Can you test it on mainnet and see?
Even the syntax of the command is not well done, the last parameter "DEFAULT" don't exist, here is the right syntax of it:
Argument #3 - sighashtype
Type: string, optional, default=ALL
The signature hash type. Must be one of
“ALL” “NONE” “SINGLE” “ALL|ANYONECANPAY” “NONE|ANYONECANPAY” “SINGLE|ANYONECANPAY”
If you want to use the default value you need to put ALL and not DEFAULT, some beginner made that.
I suggest checking that the command is executed with the correct wallet loaded (the one where descriptor had been imported). It may be easier to do it within Bitcoin Core GUI console.
I verified all in Bitcoin Core versions 24 and 25 where the "DEFAULT" argument is accepted.