What is a workaround to fundrawtransaction for watchonly addresses I have imported watchonly addresses in Bitcoin and trying to createrawtransaction with input watchonly listunspend which has spendable=false, scriptSig=empty.

after that, I'm getting an error on fundrawtransaction with message "Signing transaction failed"

I know it's unsigned and can't calculate fee but if I put in order
createrawtransaction 
signrawtransaction
fundrawtransaction
sendrawtransaction

still, it gives me an error "Signing transaction failed"?
A bitcoin address, watchonly or not, represents a public key.  This public key has a corresponding private key.

If you import a watch only address the corresponding private key is not imported.  So you cannot spend any unspent outputs from those addresses.  

If you want to send bitcoin to the watch only address, you have to make sure you know the corresponding private key or your bitcoin will be lost.

Choose an unspent output from another address where you know the private key.  Take this output when you run 'createrawtransaction'.  Sign the transaction with this private key then 'sendrawtransaction'.  

Optionally before you 'sendrawtransaction', decode your hex string with 'decoderawtransaction' and make sure everything is correct.