anchor.diff:  
   revoke_credential_for(CredId, Session) ->
       {ok, UserInfo} = tts_session:get_user_info(Session),
  -    {ok, UserId} = tts_session:get_userid(Session),
       {ok, SessionId} = tts_session:get_id(Session),
  -    case tts_credential:revoke(CredId, UserId, UserInfo) of
  +    case tts_credential:revoke(CredId, UserInfo) of
           {ok, Result, Log}  ->
  -            lager:info("SESS[~p] revoked credential ~p",
  +            lager:info("SESS~p revoked credential ~p",
                          [SessionId, CredId]),
               {ok, Result, Log};
           {error, Error, Log} ->
  -            lager:warning("SESS[~p] revocation of credential ~p failed with ~p",
  +            lager:warning("SESS~p revocation of credential ~p failed with ~p",
                             [SessionId, CredId, Error]),
               {error, Error, Log}
       end.
  
positive.code:     ok = tts_session:set_iss_sub(Issuer, Subject, SessionPid),
      true = tts_session:is_logged_in(SessionPid),
      {ok, DisplayName} = tts_session:get_display_name(SessionPid),
      lager:info("SESS[~p] logged in as ~p [~p at ~p]",
                 [SessId, DisplayName, Subject, Issuer]),
  
      {ok, #{session_id => SessId, session_token => SessToken,
  
negative.code:     catch Error:Reason ->
              logout(SessPid),
              StackTrace = erlang:get_stacktrace(),
              lager:error("SESS~p login failed due to ~p:~p at ~p",
                          [SessionId, Error, Reason, StackTrace]),
              {error, internal}
      end.
  