HDWalletProvider with Infura not working

I am using Truffle project, in the truffle-config.js using the following network config:

const infuraKey = <PROJECT_ID>

rinkeby: {
  provider: () => new HDWalletProvider(mnemonic, 'https://rinkeby.infura.io/v3/${infuraKey}', 0, 2),
  network_id: 4,      
  gas: 6000000,
  gasPrice: 10000000000,
  confirmations: 2, 
  timeoutBlocks: 200, 
  skipDryRun: true    
},

When trying to migrate it just ends without any migration performed. The migration works on development network. However, it does not work with any network having HDWalletProvider with Infura links.

bash-3.2$ truffle migrate --network rinkeby --reset
Compiling your contracts...
===========================
> Everything is up to date, there is nothing to compile.
bash-3.2$

Also getting 404 error when doing following

curl https://rinkeby.infura.io/v3/<PROJECT_ID>
404 page not found

Note: everywhere above <PROJECT_ID> using my project id from the infura dashboard.

Can you try a curl request with the format here, https://infura.io/docs/gettingStarted/makeRequests, the way you put there is not formatted correctly and will always result in a 404.