Is there any guideline in place from ICANN about the number of days before expiry past which a domain name can't be transferred from one registrar to another?
They aren't (and also remember that ICANN regulates only the gTLD space, not ccTLDs, so depending on which TLDs you are talking about, ICANN may or may not be relevant) but my advice is never to wait for the last time to renew a domain, because that does not buy you anything: a renewal, specially in gTLD, extends the current expiration life by one year (or some other amount of years) so its end result is not related to when you do it.
And, to have witnessed both at registries and registrars, it is clearly a bad idea to do multiple operations in a too short timeframe, because of the grace periods, which is a mechanism used by all gTLDs registries and many ccTLDs.
With this, it means when an operation is done there is a delay of 5 days typically (45 after an auto-renewal) during which if some other operation happen it can cancel out the previous one.
You say you are 38 days before expiration, so you are still good, I am often advising not to do anything in the last 2 months before expiration to have a big safeguard, but one month from it is still fine.
For example, in
.CN, the registry will disallow a transfer to happen if the domain is less than 15 days from its expiration.
I wish to know if my registrar can prevent me from transferring
ICANN has specific list of rules saying when a registrar can deny a transfer, see
https://www.icann.org/resources/pages/policy-transfers-2014-07-02-en and section 3
Note in particular:
The Registrar of Record may deny a transfer request only in the following
- No payment for previous registration period (including credit card charge-
backs) if the domain name is past its expiration date or for previous or
current registration periods if the domain name has not yet expired.
Until you reach expiration, your domain is normally paid (so make sure you have no outstanding balances or things like that with current registrar otherwise it could deny the transfer).
I'd also note that while I would ideally not want downtime for the website,
Except in rare cases (not in gTLDs), a transfer is a change of registrar, nothing else changes, nameservers are not changed, contacts are not changed, etc.
But, any of the following can happen:
your new registrar may ask you about new contacts or nameservers: if so, once the transfer is finished, it can now change the data immediately; for an external observer it is exactly as if the transfer changed things where in fact there was first a transfer then an update
if you use the old registrar also as DNS provider, even if you change your nameservers immediately after the transfer is done, you may then get problems (like your domain not resolving) if the old registrar stops doing DNS service right at the moment the transfer finished. In some TLDs, like
.FR there is a specific provision in the registrar contract to continue in cases like that doing DNS service for some time however I wouldn't rely on this more generally. The good way to handle this case is more the following: 1) change the nameservers at old registrars for new ones that work 2) wait (depends on various factors, if you want to be safe let us say a week after the change is effective) 3) do the transfer
PS: a good registrar (the new one you choose) should be able to help you prepare for your transfers and let you know if your domains have any problem (like too close to expiration or things like that) that would prevent the transfer; of course it should bill you really only after the transfer is successful.