I am having problems with `truffle migrate` on the default Truffle project and using Infura as the provider.

**Steps to reproduce problem**

1. `truffle init`
2. `npm install ethereumjs-wallet bip39 [email protected] [email protected] zeppelin-solidity --save`
3. Edit `truffle.js` to use deterministic wallet and infura provider. (Code below)
4. `truffle compile`
5. `truffle migrate --network rinkeby`

However running `truffle migrate --network rinkeby` does only a partial migrate. It does not go on to migrate `2_deploy_contracts.js`.

    $ truffle migrate --network rinkeby
	Running migration: 1_initial_migration.js
	  Deploying Migrations...
	  ... 0xf7a1eea43cfe61d59f55a3f5ce8b1c33bc9d5b37c2486ebdc83fdf4d1ba03041
    $ 


Anyone knows what might be the problem?


----------


Using:

 - Truffle v3.4.9 (core: 3.4.8)
 - Solidity v0.4.15 (solc-js)

----------

**truffle.js**

    var bip39 = require("bip39");
    var hdkey = require('ethereumjs-wallet/hdkey');
    var ProviderEngine = require("web3-provider-engine");
    var WalletSubprovider = require('web3-provider-engine/subproviders/wallet.js');
    var Web3Subprovider = require("web3-provider-engine/subproviders/web3.js");
    var Web3 = require("web3");

    // Get our mnemonic and create an hdwallet
    var mnemonic = "couch solve unique spirit wine fine occur rhythm foot feature glory away";
    var hdwallet = hdkey.fromMasterSeed(bip39.mnemonicToSeed(mnemonic));

    // Get the first account using the standard hd path.
    var wallet_hdpath = "m/44'/60'/0'/0/";
    var wallet = hdwallet.derivePath(wallet_hdpath + "0").getWallet();
    var address = "0x" + wallet.getAddress().toString("hex");

    var providerUrl = "https://rinkeby.infura.io/somekey";
    var engine = new ProviderEngine();
    engine.addProvider(new WalletSubprovider(wallet, {}));
    engine.addProvider(new Web3Subprovider(new Web3.providers.HttpProvider(providerUrl)));
    engine.start(); // Required by the provider engine.


    module.exports = {
      networks: {
        development: {
          host: "localhost",
          port: 8545,
          network_id: "*" // Match any network id
        },

        rinkeby: {
        	network_id: 4,
        	provider: engine,
        	from: address
        }
      }
    };


----------


Here's the output of `truffle migrate --network rinkeby --verbose-rpc`      

    Using network 'rinkeby'.

      Running migration: 1_initial_migration.js
         .> {
         .>   "jsonrpc": "2.0",
         .>   "id": 1,
         .>   "method": "eth_accounts",
         .>   "params": []
         .> }
       .<   {
       .<     "id": 1,
       .<     "jsonrpc": "2.0",
       .<     "result": [
       .<       "0xcede48d8ac162d1b08ed9419010de3c99f2cfdd6"
       .<     ]
       .<   }
         .> {
         .>   "jsonrpc": "2.0",
         .>   "id": 2,
         .>   "method": "net_version",
         .>   "params": []
         .> }
       .<   {
       .<     "id": 2,
       .<     "jsonrpc": "2.0",
       .<     "result": "4"
       .<   }
        Deploying Migrations...
         .> {
         .>   "jsonrpc": "2.0",
         .>   "id": 3,
         .>   "method": "net_version",
         .>   "params": []
         .> }
       .<   {
       .<     "id": 3,
       .<     "jsonrpc": "2.0",
       .<     "result": "4"
       .<   }
         .> {
         .>   "jsonrpc": "2.0",
         .>   "id": 4,
         .>   "method": "eth_sendTransaction",
         .>   "params": [
         .>     {
         .>       "from": "0xcede48d8ac162d1b08ed9419010de3c99f2cfdd6",
         .>       "gas": "0x47e7c4",
         .>       "gasPrice": "0x174876e800",
         .>       "data": "0x6060604052341561000f57600080fd5b5b60008054600160a060020a03191633600160a060020a03161790555b5b6101e58061003c6000396000f300606060405263ffffffff7c01000000000000000000000000000000000000000000000000000000006000350416630900f010811461005e578063445df0ac1461007f5780638da5cb5b146100a4578063fdacd576146100d3575b600080fd5b341561006957600080fd5b61007d600160a060020a03600435166100eb565b005b341561008a57600080fd5b610092610182565b60405190815260200160405180910390f35b34156100af57600080fd5b6100b7610188565b604051600160a060020a03909116815260200160405180910390f35b34156100de57600080fd5b61007d600435610197565b005b6000805433600160a060020a039081169116141561017c5781905080600160a060020a031663fdacd5766001546040517c010000000000000000000000000000000000000000000000000000000063ffffffff84160281526004810191909152602401600060405180830381600087803b151561016757600080fd5b6102c65a03f1151561017857600080fd5b5050505b5b5b5050565b60015481565b600054600160a060020a031681565b60005433600160a060020a03908116911614156101b45760018190555b5b5b505600a165627a7a723058205f879dec75723925844d4fd706c85432c3686fa32c9ccf4e7a6ca2b8bb0307380029"
         .>     }
         .>   ]
         .> }
         .> {
         .>   "id": 1507552744042366,
         .>   "jsonrpc": "2.0",
         .>   "params": [
         .>     "0xcede48d8ac162d1b08ed9419010de3c99f2cfdd6",
         .>     "pending"
         .>   ],
         .>   "method": "eth_getTransactionCount"
         .> }
       .<   {
       .<     "id": 1507552744042366,
       .<     "jsonrpc": "2.0",
       .<     "result": "0x13"
       .<   }
         .> {
         .>   "id": 1507552744515044,
         .>   "jsonrpc": "2.0",
         .>   "params": [
         .>     "0xf902741385174876e8008347e7c48080b902216060604052341561000f57600080fd5b5b60008054600160a060020a03191633600160a060020a03161790555b5b6101e58061003c6000396000f300606060405263ffffffff7c01000000000000000000000000000000000000000000000000000000006000350416630900f010811461005e578063445df0ac1461007f5780638da5cb5b146100a4578063fdacd576146100d3575b600080fd5b341561006957600080fd5b61007d600160a060020a03600435166100eb565b005b341561008a57600080fd5b610092610182565b60405190815260200160405180910390f35b34156100af57600080fd5b6100b7610188565b604051600160a060020a03909116815260200160405180910390f35b34156100de57600080fd5b61007d600435610197565b005b6000805433600160a060020a039081169116141561017c5781905080600160a060020a031663fdacd5766001546040517c010000000000000000000000000000000000000000000000000000000063ffffffff84160281526004810191909152602401600060405180830381600087803b151561016757600080fd5b6102c65a03f1151561017857600080fd5b5050505b5b5b5050565b60015481565b600054600160a060020a031681565b60005433600160a060020a03908116911614156101b45760018190555b5b5b505600a165627a7a723058205f879dec75723925844d4fd706c85432c3686fa32c9ccf4e7a6ca2b8bb03073800291ba0b65823e784f3eccb6aee7f2832d6780df2d345052fc59b18a5fc0b695d5e59b3a06c6dccd25ca9f120883ba6ffec3a7a22bc38a06fa50e71159ee00e1990fbfc7f"
         .>   ],
         .>   "method": "eth_sendRawTransaction"
         .> }
       .<   {
       .<     "id": 1507552744515044,
       .<     "jsonrpc": "2.0",
       .<     "result": "0xf2b4e82e4a806ad1adcd8ff4e6d5cad05ee99302a2265810e3de04fd3a652c33"
       .<   }
       .<   {
       .<     "id": 4,
       .<     "jsonrpc": "2.0",
       .<     "result": "0xf2b4e82e4a806ad1adcd8ff4e6d5cad05ee99302a2265810e3de04fd3a652c33"
       .<   }
        ... 0xf2b4e82e4a806ad1adcd8ff4e6d5cad05ee99302a2265810e3de04fd3a652c33
         .> {
         .>   "jsonrpc": "2.0",
         .>   "id": 5,
         .>   "method": "eth_newBlockFilter",
         .>   "params": []
         .> }