Question

Blazor Server App - System.InvalidOperationException: Internal connection fatal error

Hi, I managed to deploy and run my blazor server app. But as soon as it runs I have errors. I use this code to initialise my db

 _("Initialize do EnsureCreatedAsync");
 await context.Database.EnsureCreatedAsync();//CRASHES

 _("do seeding methods");	
	// Call your seeding methods here...
	await makeRoles(context);//ALSO CRASHES
 _("a");
 //if the system is entirely fresh there will be no invitation codes so we make one now for the first user
 await initSystemIfNeeded(context);
 _("b");
 await makeInvitations(context);//
 _("c");
 await downloadConfig(context);
 _("d");

at this line context.Database.EnsureCreatedAsync()

I get this error:

 [11:31:07 INF] ########[UI]DbInitializer.cs: An error occurred while seeding the database: exception is {System.InvalidOperationException: Internal connection fatal error.                                        
    at Microsoft.Data.SqlClient.TdsParserStateObject.TryProcessHeader()                                                                                                                                             
    at Microsoft.Data.SqlClient.TdsParser.ConsumePreLoginHandshake(Boolean encrypt, Boolean trustServerCert, Boolean integratedSecurity, Boolean& marsCapable, Boolean& fedAuthRequired)                            
    at Microsoft.Data.SqlClient.TdsParser.Connect(ServerInfo serverInfo, SqlInternalConnectionTds connHandler, Boolean ignoreSniOpenTimeout, Int64 timerExpire, Boolean encrypt, Boolean trustServerCert, Boolean 
icationMethod authType)                                                                                                                                                                                             
    at Microsoft.Data.SqlClient.SqlInternalConnectionTds.AttemptOneLogin(ServerInfo serverInfo, String newPassword, SecureString newSecurePassword, Boolean ignoreSniOpenTimeout, TimeoutTimer timeout, Boolean 
                                                                                                                                                                                                                    
    at Microsoft.Data.SqlClient.SqlInternalConnectionTds.LoginNoFailover(ServerInfo serverInfo, String newPassword, SecureString newSecurePassword, Boolean redirectedUserInstance, SqlConnectionString 
Timer timeout)                                                                                                                                                                                                      
    at Microsoft.Data.SqlClient.SqlInternalConnectionTds.OpenLoginEnlist(TimeoutTimer timeout, SqlConnectionString connectionOptions, SqlCredential credential, String newPassword, SecureString newSecurePassword, 
                                                                                                                                                                                                                    
    at Microsoft.Data.SqlClient.SqlInternalConnectionTds..ctor(DbConnectionPoolIdentity identity, SqlConnectionString connectionOptions, SqlCredential credential, Object providerInfo, String newPassword, 
erInstance, SqlConnectionString userConnectionOptions, SessionData reconnectSessionData, Boolean applyTransientFaultHandling, String accessToken, DbConnectionPool pool)                                            
    at Microsoft.Data.SqlClient.SqlConnectionFactory.CreateConnection(DbConnectionOptions options, DbConnectionPoolKey poolKey, Object poolGroupProviderInfo, DbConnectionPool pool, DbConnection owningConnection, 
                                                                                                                                                                                                                    
    at Microsoft.Data.ProviderBase.DbConnectionFactory.CreateNonPooledConnection(DbConnection owningConnection, DbConnectionPoolGroup poolGroup, DbConnectionOptions userOptions)                                   
    at Microsoft.Data.ProviderBase.DbConnectionFactory.<>c__DisplayClass47_0.<CreateReplaceConnectionContinuation>b__0(Task`1 _)                                                                                    
    at System.Threading.Tasks.ContinuationResultTaskFromResultTask`2.InnerInvoke()                                                                                                                                  
    at System.Threading.Tasks.Task.<>c.<.cctor>b__272_0(Object obj)                                                                                                                                                 
    at System.Threading.ExecutionContext.RunInternal(ExecutionContext executionContext, ContextCallback callback, Object state)                                                                                     
 --- End of stack trace from previous location ---                                                                                                                                                                  
    at System.Threading.ExecutionContext.RunInternal(ExecutionContext executionContext, ContextCallback callback, Object state)                                                                                     
    at System.Threading.Tasks.Task.ExecuteWithThreadLocal(Task& currentTaskSlot, Thread threadPoolThread)                                                                                                           
 --- End of stack trace from previous location ---                                                                                                                                                                  
    at Microsoft.EntityFrameworkCore.Storage.RelationalConnection.OpenInternalAsync(Boolean errorsExpected, CancellationToken cancellationToken)                                                                    
    at Microsoft.EntityFrameworkCore.Storage.RelationalConnection.OpenInternalAsync(Boolean errorsExpected, CancellationToken cancellationToken)                                                                    
    at Microsoft.EntityFrameworkCore.Storage.RelationalConnection.OpenAsync(CancellationToken cancellationToken, Boolean errorsExpected)                                                                            
    at Microsoft.EntityFrameworkCore.SqlServer.Storage.Internal.SqlServerDatabaseCreator.<>c__DisplayClass20_0.<<ExistsAsync>b__0>d.MoveNext()                                                                      
 --- End of stack trace from previous location ---                                                                                                                                                                  
    at Microsoft.EntityFrameworkCore.SqlServer.Storage.Internal.SqlServerDatabaseCreator.<>c__DisplayClass20_0.<<ExistsAsync>b__0>d.MoveNext()                                                                      
 --- End of stack trace from previous location ---                                                                                                                                                                  
    at Microsoft.EntityFrameworkCore.SqlServer.Storage.Internal.SqlServerExecutionStrategy.ExecuteAsync[TState,TResult](TState state, Func`4 operation, Func`4 verifySucceeded, CancellationToken cancellationToken)
    at Microsoft.EntityFrameworkCore.Storage.RelationalDatabaseCreator.EnsureCreatedAsync(CancellationToken cancellationToken)                                                                                      
    at Microsoft.EntityFrameworkCore.Storage.RelationalDatabaseCreator.EnsureCreatedAsync(CancellationToken cancellationToken)                                                                                      
    at FlowValet.BlazorServerApp.UI.Data.DbInitializer.Initialize(ApplicationDbContext context) in /src/FlowValet.BlazorServerApp.UI/Data/DbInitializer.cs:line 43}                                                 
 warn: Microsoft.AspNetCore.DataProtection.Repositories.FileSystemXmlRepository[60]                                                                                                                                 
       Storing keys in a directory '/root/.aspnet/DataProtection-Keys' that may not be persisted outside of the container. Protected data will be unavailable when container is destroyed.                          

My connetion string is

Server=db-mysql-fatmancluster-do-user-18828999-0.j.db.ondigitalocean.com,25060;Database=defaultdb;User=doadmin;Password=mypass;Connection Timeout=30;Pooling=False;SslMode=Required

Submit an answer


This textbox defaults to using Markdown to format your answer.

You can type !ref in this text area to quickly search our full set of tutorials, documentation & marketplace offerings and insert the link!

Sign In or Sign Up to Answer

These answers are provided by our Community. If you find them useful, show some love by clicking the heart. If you run into issues leave a comment, or add your own answer to help others.

KFSys
Site Moderator
Site Moderator badge
January 30, 2025

Heya,

First, try to do the following:

  • Ensure Port=25060 is specified (not using a comma , but Port= explicitly).

Also what is the exact SQL command you are using to connect? I’ve not had a similar issue as I’ve not run Blazor but reading through various forums it seems to be an issue with the sql command itself. I’ve found this as well:

https://github.com/dotnet/SqlClient/issues/1116

While it’s not directly connected it might prove some usefulness.

Become a contributor for community

Get paid to write technical tutorials and select a tech-focused charity to receive a matching donation.

DigitalOcean Documentation

Full documentation for every DigitalOcean product.

Resources for startups and SMBs

The Wave has everything you need to know about building a business, from raising funding to marketing your product.

Get our newsletter

Stay up to date by signing up for DigitalOcean’s Infrastructure as a Newsletter.

New accounts only. By submitting your email you agree to our Privacy Policy

The developer cloud

Scale up as you grow — whether you're running one virtual machine or ten thousand.

Get started for free

Sign up and get $200 in credit for your first 60 days with DigitalOcean.*

*This promotional offer applies to new accounts only.