I think it won't be able to find the key to sign
You are right, just tested and will not find the key.
Alternatively, you can refill the keypool on-the-fly with the command: keypoolrefill <new keypool size>
Refill on-the-fly it is definitely the best solution.
To test it, I edit bitcoin.conf with keypool=3, I generate a wallet, when I type "listdescriptors" it shows range [0,2] and I import the descriptor to a watch only wallet with range [0,999].
With the watch only I create 4 receiving address, with the command "getaddressinfo" the first 3 addresses:
"ismine": true,
"solvable": true,
"getaddressinfo" withe the 4th address:
getaddressinfo bc1qqdpe3fq7vqza7z9zquc7fedp7jkgvjruskhlrn
{
"address": "bc1qqdpe3fq7vqza7z9zquc7fedp7jkgvjruskhlrn",
"scriptPubKey": "0014034398a41e6005df08a20731e4e5a1f4ac86487c",
"ismine": false,
"solvable": false,
"iswatchonly": false,
"isscript": false,
"iswitness": true,
"witness_version": 0,
"witness_program": "034398a41e6005df08a20731e4e5a1f4ac86487c",
"ischange": false,
"labels": [
]
}
Then I just refill the keypool with "keypoolrefill 10" and type again:
getaddressinfo bc1qqdpe3fq7vqza7z9zquc7fedp7jkgvjruskhlrn
{
"address": "bc1qqdpe3fq7vqza7z9zquc7fedp7jkgvjruskhlrn",
"scriptPubKey": "0014034398a41e6005df08a20731e4e5a1f4ac86487c",
"ismine": true,
"solvable": true,
"desc": "wpkh([edd03c2d/84'/0'/0'/0/3]030297ae103edc4b156bc35d5b3c047ebcd6bca10ce8cf9e33ef90fe39918e7a7f)#mhhfrenc",
"parent_desc": "wpkh([edd03c2d/84'/0'/0']xpub6D4Xg4No2w9q8nwGGDPa2R1UruBtGrb7VsNBS394qg5bMdzibkcM1ziwN8J2Pc9rPA3c2QE6k23qt6cKioJgRMahN6AY6oAQDkqWgYYMnqb/0/*)#7nsk7kfc",
"iswatchonly": false,
"isscript": false,
"iswitness": true,
"witness_version": 0,
"witness_program": "034398a41e6005df08a20731e4e5a1f4ac86487c",
"pubkey": "030297ae103edc4b156bc35d5b3c047ebcd6bca10ce8cf9e33ef90fe39918e7a7f",
"ischange": true,
"timestamp": 1650271498,
"hdkeypath": "m/84'/0'/0'/0/3",
"hdseedid": "0000000000000000000000000000000000000000",
"hdmasterfingerprint": "edd03c2d",
"labels": [
]
}