Skip to content

PublishMessageResponse and BroadcastSignalResponse missing Key and TenantId properties #825

@gorazd-dimovski

Description

@gorazd-dimovski

Description

The IPublishMessageResponse and IBroadcastSignalResponse interfaces are empty and do not expose the Key and TenantId properties that are defined in the gateway protocol and returned by the Zeebe Gateway gRPC service.

Expected Behavior

According to the gateway.proto definition, both responses should expose:

message PublishMessageResponse {
  // the unique ID of the message that was published
  int64 key = 1;
  // the tenant id of the message
  string tenantId = 2;
}

message BroadcastSignalResponse {
  // the unique ID of the signal that was broadcasted.
  int64 key = 1;
  // the tenant id of the signal that was broadcasted.
  string tenantId = 2;
}

Actual Behavior

The C# client defines empty interfaces:

Client/Api/Responses/IPublishMessageResponse.cs:

public interface IPublishMessageResponse
{
    // Empty!
}

Client/Api/Responses/IBroadcastSignalResponse.cs:

public interface IBroadcastSignalResponse
{
    // Empty!
}

Root Cause

The proto-generated classes DO have the properties (in Client/Impl/proto/Gateway.cs), but the command implementations discard the response:

Client/Impl/Commands/PublishMessageCommand.cs (line 72-73):

var asyncReply = client.PublishMessageAsync(request, ...);
_ = await asyncReply.ResponseAsync;  // ❌ Response discarded
return new PublishMessageResponse(); // ❌ Returns empty wrapper

Client/Impl/Commands/BroadcastSignalCommand.cs (line 49-50):

var asyncReply = client.BroadcastSignalAsync(request, ...);
_ = await asyncReply.ResponseAsync;  // ❌ Response discarded
return new BroadcastSignalResponse(); // ❌ Returns empty wrapper

Metadata

Metadata

Assignees

Labels

bugSomething isn't working

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions