Our application may contact different servers using background processes to update local data. Some servers require authentication, others don't. When accessing the first time a server, our application asks for the credentials and stores them in a master-password encrypted storage. When reopening the application, it needs to ask for the master-password to use the stored credentials (similar to Firefox). As you can imagine, this can happen when the user does not expect it (in contrast to Firefox), because of the background processes.
What options do we have - ask the user for the master-password at application start, simply skip to connect the servers where authentication is required until the user provided the master-password using an explicit action?