@@ -143,9 +143,9 @@ public void Initialize(Window window, DispatcherQueue dispatcherQueue)
143143
144144 var rpcModel = _rpcController . GetState ( ) ;
145145 var credentialModel = _credentialManager . GetCachedCredentials ( ) ;
146- MaybeSetUnavailableMessage ( rpcModel , credentialModel ) ;
147146 var syncSessionState = _syncSessionController . GetState ( ) ;
148147 UpdateSyncSessionState ( syncSessionState ) ;
148+ MaybeSetUnavailableMessage ( rpcModel , credentialModel , syncSessionState ) ;
149149 }
150150
151151 private void RpcControllerStateChanged ( object ? sender , RpcModel rpcModel )
@@ -159,7 +159,8 @@ private void RpcControllerStateChanged(object? sender, RpcModel rpcModel)
159159 }
160160
161161 var credentialModel = _credentialManager . GetCachedCredentials ( ) ;
162- MaybeSetUnavailableMessage ( rpcModel , credentialModel ) ;
162+ var syncSessionState = _syncSessionController . GetState ( ) ;
163+ MaybeSetUnavailableMessage ( rpcModel , credentialModel , syncSessionState ) ;
163164 }
164165
165166 private void CredentialManagerCredentialsChanged ( object ? sender , CredentialModel credentialModel )
@@ -173,7 +174,8 @@ private void CredentialManagerCredentialsChanged(object? sender, CredentialModel
173174 }
174175
175176 var rpcModel = _rpcController . GetState ( ) ;
176- MaybeSetUnavailableMessage ( rpcModel , credentialModel ) ;
177+ var syncSessionState = _syncSessionController . GetState ( ) ;
178+ MaybeSetUnavailableMessage ( rpcModel , credentialModel , syncSessionState ) ;
177179 }
178180
179181 private void SyncSessionStateChanged ( object ? sender , SyncSessionControllerStateModel syncSessionState )
@@ -189,7 +191,7 @@ private void SyncSessionStateChanged(object? sender, SyncSessionControllerStateM
189191 UpdateSyncSessionState ( syncSessionState ) ;
190192 }
191193
192- private void MaybeSetUnavailableMessage ( RpcModel rpcModel , CredentialModel credentialModel )
194+ private void MaybeSetUnavailableMessage ( RpcModel rpcModel , CredentialModel credentialModel , SyncSessionControllerStateModel syncSessionState )
193195 {
194196 var oldMessage = UnavailableMessage ;
195197 if ( rpcModel . RpcLifecycle != RpcLifecycle . Connected )
@@ -205,6 +207,10 @@ private void MaybeSetUnavailableMessage(RpcModel rpcModel, CredentialModel crede
205207 {
206208 UnavailableMessage = "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+ }
208214 else
209215 {
210216 UnavailableMessage = null ;
@@ -219,6 +225,13 @@ private void MaybeSetUnavailableMessage(RpcModel rpcModel, CredentialModel crede
219225
220226 private 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+ }
222235 Error = syncSessionState . DaemonError ;
223236 Sessions = syncSessionState . SyncSessions . Select ( s => new SyncSessionViewModel ( this , s ) ) . ToList ( ) ;
224237 }
0 commit comments