anchor.diff:  %%-------------------------------------------------------------------
   -spec verify_storage_internal(helpers:helper(), helpers:user_ctx(), [node()],
       helpers:file_id(), Content :: binary()) ->
  -    {ok, {helpers:file_id(), binary()}} | {error, term()}.
  +    {ok, {helpers:file_id(), binary()}} |
  +    {error, term()} | {error, term(), Stacktrace :: list()}.
   verify_storage_internal(_Helper, _AdminCtx, [], FileId, FileContent) ->
       {ok, {FileId, FileContent}};
   verify_storage_internal(Helper, AdminCtx, [Node | Nodes], FileId, ExpectedFileContent) ->
       case verify_test_file(Node, Helper, AdminCtx, FileId, ExpectedFileContent) of
           ok ->
               FileId2 = generate_file_id(),
  -            FileContent = create_test_file(Node, Helper, AdminCtx, FileId),
  -            verify_storage_internal(Helper, AdminCtx, Nodes, FileId2, FileContent);
  +            case create_test_file(Node, Helper, AdminCtx, FileId) of
  +                {ok, FileContent} ->
  +                    verify_storage_internal(Helper, AdminCtx,
  +                        Nodes, FileId2, FileContent);
  +                Error -> Error
  +            end;
           Error ->
               Error
       end.
   
   -spec create_test_file(node(), helpers:helper(), helpers:user_ctx(), helpers:file_id()) ->
  -    Content :: binary().
  +    {ok, Content :: binary()} | {error, Reason :: term(), Stacktrace :: list()}.
   create_test_file(Node, Helper, UserCtx, FileId) ->
  -    rpc:call(Node, ?MODULE, create_test_file, [Helper, UserCtx, FileId]).
  +    case rpc:call(Node, ?MODULE, create_test_file, [Helper, UserCtx, FileId]) of
  +        {badrpc, {'EXIT', {Reason, Stacktrace}}} ->
  +            ?ERR_STORAGE_TEST_FILE_CREATE(Node, Reason, Stacktrace);
  +        <<Content/binary>> ->
  +            {ok, Content}
  +    end.
   
   -spec verify_test_file(node(), helpers:helper(), helpers:user_ctx(),
  -    helpers:file_id(), Content :: binary()) -> ok | {error, term()}.
  +    helpers:file_id(), Content :: binary()) ->
  +    ok | {error, term()} | {error, term(), Stacktrace :: list()}.
   verify_test_file(Node, Helper, UserCtx, FileId, ExpectedFileContent) ->
  -    rpc:call(Node, ?MODULE, verify_test_file, [Helper, UserCtx, FileId, ExpectedFileContent]).+    case rpc:call(Node, ?MODULE, verify_test_file,
  +        [Helper, UserCtx, FileId, ExpectedFileContent]) of
  +        {badrpc, {'EXIT', {Reason, Stacktrace}}} ->
  +            ?ERR_STORAGE_TEST_FILE_READ(Node, Reason, Stacktrace);
  +        Result ->
  +            Result
  +    end.
  
positive.code: -spec verify_test_file(helpers:helper(), helpers:user_ctx(), helpers:file_id(),
      Content :: binary()) -> ok | {error, term()}.
  verify_test_file(Helper, UserCtx, FileId, ExpectedFileContent) ->
      case read_test_file(Helper, UserCtx, FileId) of
          ExpectedFileContent ->
              remove_test_file(Helper, UserCtx, FileId, byte_size(ExpectedFileContent)),
              ok;
          UnexpectedFileContent ->
              ?error("Unexpected test file content in ~p", [FileId]),
              remove_test_file(Helper, UserCtx, FileId, byte_size(ExpectedFileContent)),
              {error, {storage_test_file, {ExpectedFileContent, UnexpectedFileContent}}}
      end.
  
  %%%===================================================================
  
negative.code: %% This function is called by onepanel, BEFORE adding new storage.
  %% @end
  %%-------------------------------------------------------------------
  -spec verify_storage_on_all_nodes(helpers:helper()) ->
      ok | {error, term()} | {error, term(), Stacktrace :: list()}.
  verify_storage_on_all_nodes(Helper) ->
      {ok, AdminCtx} = luma:get_admin_ctx(?ROOT_USER_ID, Helper),
      {ok, AdminCtx2} = luma:add_helper_specific_fields(?ROOT_USER_ID,
          ?ROOT_SESS_ID, AdminCtx, Helper),
      {ok, [Node | Nodes]} = node_manager:get_cluster_nodes(),
      FileId = generate_file_id(),
      case create_test_file(Node, Helper, AdminCtx2, FileId) of
          {ok, FileContent} ->
              case verify_storage_internal(Helper, AdminCtx2, Nodes, FileId, FileContent) of
                  {ok, {FileId, FileContent}} ->
                      verify_test_file(Node, Helper, AdminCtx2, FileId, FileContent);
                  Error ->
                      Error
              end;
          Error ->
              Error
      end.
  