diff --git a/datastore_server/source/java/ch/systemsx/cisd/openbis/dss/generic/server/EncapsulatedOpenBISService.java b/datastore_server/source/java/ch/systemsx/cisd/openbis/dss/generic/server/EncapsulatedOpenBISService.java
index b7cb2a1b0d4dc5fee0a745e364710a8c13d47b83..3b75ec0c33dafc5b43870463211fd2ca0c3aeace 100644
--- a/datastore_server/source/java/ch/systemsx/cisd/openbis/dss/generic/server/EncapsulatedOpenBISService.java
+++ b/datastore_server/source/java/ch/systemsx/cisd/openbis/dss/generic/server/EncapsulatedOpenBISService.java
@@ -818,25 +818,58 @@ public final class EncapsulatedOpenBISService implements IEncapsulatedOpenBISSer
 
     public List<Person> listAdministrators()
     {
-        return service.listAdministrators(sessionToken);
+        checkSessionToken();
+        try
+        {
+            return service.listAdministrators(sessionToken);
+        } catch (final InvalidSessionException ex)
+        {
+            authenticate();
+            return service.listAdministrators(sessionToken);
+        }
     }
 
     public Person tryPersonWithUserIdOrEmail(String useridOrEmail)
     {
-        return service.tryPersonWithUserIdOrEmail(sessionToken, useridOrEmail);
+        checkSessionToken();
+        try
+        {
+            return service.tryPersonWithUserIdOrEmail(sessionToken, useridOrEmail);
+        } catch (final InvalidSessionException ex)
+        {
+            authenticate();
+            return service.tryPersonWithUserIdOrEmail(sessionToken, useridOrEmail);
+        }
     }
 
     public Sample registerSampleAndDataSet(NewSample newSample, NewExternalData externalData,
             String userIdOrNull) throws UserFailureException
     {
-        return service
-                .registerSampleAndDataSet(sessionToken, newSample, externalData, userIdOrNull);
+        checkSessionToken();
+        try
+        {
+            return service.registerSampleAndDataSet(sessionToken, newSample, externalData,
+                    userIdOrNull);
+        } catch (final InvalidSessionException ex)
+        {
+            authenticate();
+            return service.registerSampleAndDataSet(sessionToken, newSample, externalData,
+                    userIdOrNull);
+        }
     }
 
     public Sample updateSampleAndRegisterDataSet(SampleUpdatesDTO newSample,
             NewExternalData externalData)
     {
-        return service.updateSampleAndRegisterDataSet(sessionToken, newSample, externalData);
+        checkSessionToken();
+        try
+        {
+            return service.updateSampleAndRegisterDataSet(sessionToken, newSample, externalData);
+        } catch (final InvalidSessionException ex)
+        {
+            authenticate();
+            return service.updateSampleAndRegisterDataSet(sessionToken, newSample, externalData);
+        }
     }
 
 }
\ No newline at end of file