@@ -189,7 +189,7 @@ private void SyncSessionStateChanged(object? sender, SyncSessionControllerStateM
189189 UpdateSyncSessionState ( syncSessionState ) ;
190190 }
191191
192- private void MaybeSetUnavailableMessage ( RpcModel rpcModel , CredentialModel credentialModel )
192+ private void MaybeSetUnavailableMessage ( RpcModel rpcModel , CredentialModel credentialModel , SyncSessionControllerStateModel ? syncSessionState = null )
193193 {
194194 var oldMessage = UnavailableMessage ;
195195 if ( rpcModel . RpcLifecycle != RpcLifecycle . Connected )
@@ -204,6 +204,9 @@ private void MaybeSetUnavailableMessage(RpcModel rpcModel, CredentialModel crede
204204 else if ( rpcModel . VpnLifecycle != VpnLifecycle . Started )
205205 {
206206 UnavailableMessage = "Please start Coder Connect from the tray window to access file sync." ;
207+ } else if ( syncSessionState != null && syncSessionState . Lifecycle == SyncSessionControllerLifecycle . Uninitialized )
208+ {
209+ UnavailableMessage = "Sync session controller is not initialized. Please wait..." ;
207210 }
208211 else
209212 {
@@ -219,6 +222,13 @@ private void MaybeSetUnavailableMessage(RpcModel rpcModel, CredentialModel crede
219222
220223 private void UpdateSyncSessionState ( SyncSessionControllerStateModel syncSessionState )
221224 {
225+ // This should never happen.
226+ if ( syncSessionState == null )
227+ return ;
228+ if ( syncSessionState . Lifecycle == SyncSessionControllerLifecycle . Uninitialized )
229+ {
230+ MaybeSetUnavailableMessage ( _rpcController . GetState ( ) , _credentialManager . GetCachedCredentials ( ) , syncSessionState ) ;
231+ }
222232 Error = syncSessionState . DaemonError ;
223233 Sessions = syncSessionState . SyncSessions . Select ( s => new SyncSessionViewModel ( this , s ) ) . ToList ( ) ;
224234 }
0 commit comments