Assuming a setup where a client SPA has a JWT and the API server stores refresh tokens.
If a user has a JWT that has expired and they make a request it appears the the norm would be to return a 400 or 401 and have them use some other end-point to refresh the token (e.g. /token/refresh), this would then return them a new JWT with a new expiry. They would then have to make the original request again with the new JWT that should now work. This results in 3 requests (original, renew/refresh, original with new JWT).
Would a suitable mechanism also be to automatically refresh the token on their behalf on any request and return the new JWT in a header if the JWT had expired? API usage instructions would document that if the header is present it should replace the existing JWT they have. This would result in a single request.
If this is not suitable, why not?