anchor.diff:      SubConnectOnline = mqtt5_v4compat:gen_connect(Prefix ++ "shared-sub-sub-online",
                                                     [{keepalive, 60},
                                                      {clean_session, false}], Cfg),
  -    SubConnectOffline = mqtt5_v4compat:gen_connect(Prefix ++ "shared-sub-sub-offline",
  +    SubOfflineClientId = Prefix ++ "shared-sub-sub-offline",
  +    SubConnectOffline = mqtt5_v4compat:gen_connect(SubOfflineClientId,
                                                      [{keepalive, 60},
                                                       {clean_session, false}],
                                                      Cfg),
  
positive.code:     {_QoS, _Topic, <<"large enough to be discarded publish">> = _Payload, _Props} = Promise(),
      ok;
  hook_on_message_drop({"", <<"message-expiry-sub">>}, _, expired) -> ok.
  
  %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
  %%% Helper
  
negative.code:     Disconnect = mqtt5_v4compat:gen_disconnect(Cfg),
      ok = gen_tcp:send(SubSocketOffline, Disconnect),
  
      %% wait for the client to be offline before publishing
      wait_for_offline_event(SubOfflineClientId, 500),
  
      PubFun
          = fun(Socket, Mid) ->
                    Publish = mqtt5_v4compat:gen_publish("shared_sub_topic", 1,
                                                         <<Mid:8, (vmq_test_utils:rand_bytes(10))/binary>>,
                                                         [{mid, Mid}], Cfg),
                    Puback = mqtt5_v4compat:gen_puback(Mid, Cfg),
                    ok = gen_tcp:send(Socket, Publish),
  