Error Initializing SD Card on 2650 R3 and Network Shield v6

I am having issues with the SD card initializing when the device is first powered up. If i eject the card and reinsert it while the device is running then it will start working.

I am running genuine arduino 2650 and Ethernet shield R3 (v6).

What is really strange is if i use the networking with the sd card and reinsert the card after boot up I have no issues serving web pages off of it.

Here is the code i am running:

const int chipSelect = 4;

void setup()
{
	// Open serial communications and wait for port to open:
	Serial.begin(115200);
	while (!Serial) {
		; // wait for serial port to connect. Needed for Leonardo only
	}

	Serial.print("SS: ");
	Serial.println(SS_PIN);
	Serial.print("MISO: ");
	Serial.println(SPI_MISO_PIN);
	Serial.print("MOSI: ");
	Serial.println(SPI_MOSI_PIN);
	Serial.print("SCK: ");
	Serial.println(SPI_SCK_PIN);
		
	Serial.print("PIN4: ");
	Serial.println(PIN4);

	Serial.print("\nInitializing SD card...");
	// On the Ethernet Shield, CS is pin 4. It's set as an output by default.
	// Note that even if it's not used as the CS pin, the hardware SS pin 
	// (10 on most Arduino boards, 53 on the Mega) must be left as an output 
	// or the SD library functions will not work. 
	pinMode(53, OUTPUT);     // change this to 53 on a mega

	// we'll use the initialization code from the utility libraries
	// since we're just testing if the card is working!
	
	if (!card.init(SPI_HALF_SPEED, chipSelect)) {
		Serial.println("initialization failed. Things to check:");
		Serial.println("* is a card is inserted?");
		Serial.println("* Is your wiring correct?");
		Serial.println("* did you change the chipSelect pin to match your shield or module?");
		return;
	}
	else {
		Serial.println("Wiring is correct and a card is present.");
	}

	// print the type of card
	Serial.print("\nCard type: ");
	switch (card.type()) {
	case SD_CARD_TYPE_SD1:
		Serial.println("SD1");
		break;
	case SD_CARD_TYPE_SD2:
		Serial.println("SD2");
		break;
	case SD_CARD_TYPE_SDHC:
		Serial.println("SDHC");
		break;
	default:
		Serial.println("Unknown");
	}

You must disable all other SPI devices before starting any of them. Disable the w5100 SPI interface before starting the SD card.

void setup() {
  // disable w5100 SPI
  pinMode(10, OUTPUT);
  digitalWrite(10, HIGH);

  // now do the rest of your setup