If a website is saying your receive address from Electrum is invalid, then it is most likely that:
1. You have created a bech32 "native segwit" wallet in Electrum (this is the default from Electrum v4.1.0 onwards, see below)
2. The website you are attempting to withdraw from does not support bech32 "native segwit" addresses
Note that this is NOT a fault with Electrum... it is a fault with the website you are using. You should contact the support of the site involved and encourage them to update their systems to properly support SegWit.
There are two types of wallets on Electrum Legacy or Segwit wallet. What wallet did you generate Segwit or Legacy?
As of version 4.1.0, you can no longer generate Legacy wallets using the "wallet creation wizard" in Electrum. You either need to use a pre-existing Electrum legacy seed, a BIP39 seed and select "legacy" or you have to use the make_seed() command on the console (or linux commandline) and set the seed_type as "standard" and then use that seed to "restore" the legacy wallet.
make_seed(seed_type="standard")
# Release 4.1.0 - Kangaroo (March 30, 2021)
...
* The wallet creation wizard no longer asks for a seed type, and
creates segwit wallets with bech32 addresses. Older seed types can
still be created with the command line.