We get the warehouses from integration, so I thought I'd remove the Default Warehouse since we do not use it. Didn't think about it, I just did it. Little did I know that the web app would not be able to start anymore without it.
Initialize action failed for 'Initialize on class EPiServer.Commerce.Initialization.CartModeInitializationModule, EPiServer.Business.Commerce, Version=14.14.0.0, Culture=neutral, PublicKeyToken=8fe83dea738b45b7'
System.Exception: Exception in [ecf_ShippingMethod_Language]: ForeignKeyConstraint ShippingMethod_MarketShippingMethods requires the child key values (dade7f46-646b-4a16-9226-4e574c8c79e6) to exist in the parent table.
---> System.Data.ConstraintException: Failed to enable constraints. One or more rows contain values violating non-null, unique, or foreign-key constraints.
at System.Data.DataSet.FailedEnableConstraints()
at System.Data.DataSet.EnableConstraints()
at System.Data.DataSet.set_EnforceConstraints(Boolean value)
at System.Data.DataTable.EndLoadData()
at System.Data.Common.DataAdapter.FillFromReader(DataSet dataset, DataTable datatable, String srcTable, DataReaderContainer dataReader, Int32 startRecord, Int32 maxRecords, DataColumn parentChapterColumn, Object parentChapterValue)
at System.Data.Common.DataAdapter.Fill(DataSet dataSet, String srcTable, IDataReader dataReader, Int32 startRecord, Int32 maxRecords)
at System.Data.Common.DbDataAdapter.FillInternal(DataSet dataset, DataTable[] datatables, Int32 startRecord, Int32 maxRecords, String srcTable, IDbCommand command, CommandBehavior behavior)
at System.Data.Common.DbDataAdapter.Fill(DataSet dataSet, Int32 startRecord, Int32 maxRecords, String srcTable, IDbCommand command, CommandBehavior behavior)
at System.Data.Common.DbDataAdapter.Fill(DataSet dataSet)
at Mediachase.Data.Provider.SqlDataProvider.<>c__DisplayClass21_0.b__0()
at EPiServer.Data.Providers.SqlTransientErrorsRetryPolicy.Execute[TResult](Func`1 method)
at Mediachase.Data.Provider.SqlDataProvider.WithRetry[TResult](Func`1 action
at Mediachase.Data.Provider.SqlDataProvider.LoadDataSet(DataCommand command)
To me, this is definitely a bug. Don't allow the user to do this if it has such catastrofic effects.