@@ -143,9 +143,9 @@ public void Initialize(Window window, DispatcherQueue dispatcherQueue)
143143
144144var rpcModel = _rpcController . GetState ( ) ;
145145var credentialModel = _credentialManager . GetCachedCredentials ( ) ;
146- MaybeSetUnavailableMessage ( rpcModel , credentialModel ) ;
147146var syncSessionState = _syncSessionController . GetState ( ) ;
148147UpdateSyncSessionState ( syncSessionState ) ;
148+ MaybeSetUnavailableMessage ( rpcModel , credentialModel , syncSessionState ) ;
149149}
150150
151151private void RpcControllerStateChanged ( object ? sender , RpcModel rpcModel )
@@ -159,7 +159,8 @@ private void RpcControllerStateChanged(object? sender, RpcModel rpcModel)
159159}
160160
161161var credentialModel = _credentialManager . GetCachedCredentials ( ) ;
162- MaybeSetUnavailableMessage ( rpcModel , credentialModel ) ;
162+ var syncSessionState = _syncSessionController . GetState ( ) ;
163+ MaybeSetUnavailableMessage ( rpcModel , credentialModel , syncSessionState ) ;
163164}
164165
165166private void CredentialManagerCredentialsChanged ( object ? sender , CredentialModel credentialModel )
@@ -173,7 +174,8 @@ private void CredentialManagerCredentialsChanged(object? sender, CredentialModel
173174}
174175
175176var rpcModel = _rpcController . GetState ( ) ;
176- MaybeSetUnavailableMessage ( rpcModel , credentialModel ) ;
177+ var syncSessionState = _syncSessionController . GetState ( ) ;
178+ MaybeSetUnavailableMessage ( rpcModel , credentialModel , syncSessionState ) ;
177179}
178180
179181private void SyncSessionStateChanged ( object ? sender , SyncSessionControllerStateModel syncSessionState )
@@ -189,7 +191,7 @@ private void SyncSessionStateChanged(object? sender, SyncSessionControllerStateM
189191UpdateSyncSessionState ( syncSessionState ) ;
190192}
191193
192- private void MaybeSetUnavailableMessage ( RpcModel rpcModel , CredentialModel credentialModel )
194+ private void MaybeSetUnavailableMessage ( RpcModel rpcModel , CredentialModel credentialModel , SyncSessionControllerStateModel syncSessionState )
193195{
194196var oldMessage = UnavailableMessage ;
195197if ( rpcModel . RpcLifecycle != RpcLifecycle . Connected )
@@ -205,6 +207,10 @@ private void MaybeSetUnavailableMessage(RpcModel rpcModel, CredentialModel crede
205207{
206208UnavailableMessage = "Please start Coder Connect from the tray window to access file sync." ;
207209}
210+ else if ( syncSessionState . Lifecycle == SyncSessionControllerLifecycle . Uninitialized )
211+ {
212+ UnavailableMessage = "Sync session controller is not initialized. Please wait..." ;
213+ }
208214else
209215{
210216UnavailableMessage = null ;
@@ -219,6 +225,13 @@ private void MaybeSetUnavailableMessage(RpcModel rpcModel, CredentialModel crede
219225
220226private void UpdateSyncSessionState ( SyncSessionControllerStateModel syncSessionState )
221227{
228+ // This should never happen.
229+ if ( syncSessionState == null )
230+ return ;
231+ if ( syncSessionState . Lifecycle == SyncSessionControllerLifecycle . Uninitialized )
232+ {
233+ MaybeSetUnavailableMessage ( _rpcController . GetState ( ) , _credentialManager . GetCachedCredentials ( ) , syncSessionState ) ;
234+ }
222235Error = syncSessionState . DaemonError ;
223236Sessions = syncSessionState . SyncSessions . Select ( s=> new SyncSessionViewModel ( this , s ) ) . ToList ( ) ;
224237}