Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

fix: eventstream invalid topic error #5787

Merged
merged 1 commit into from
Jul 24, 2023

Conversation

nflaig
Copy link
Member

@nflaig nflaig commented Jul 22, 2023

Motivation

Eventstream API does not respond with 400 error if invalid topic is provided, it keeps connection open without sending any data.

Description

Can be easily tested by sending request with invalid topic

> curl -N http://localhost:9596/eth/v1/events?topics=test
{"statusCode":400,"error":"Bad Request","message":"Invalid topic: test"}

We also log a warning now on server if a client sents an eventstream request with an invalid topic

Eph 0/1 2.989[rest]             warn: Req req-n eventstream failed reason=Invalid topic: test

@github-actions
Copy link
Contributor

github-actions bot commented Jul 22, 2023

Performance Report

✔️ no performance regression detected

Full benchmark results
Benchmark suite Current: 14c5892 Previous: 3257345 Ratio
getPubkeys - index2pubkey - req 1000 vs - 250000 vc 592.27 us/op 847.56 us/op 0.70
getPubkeys - validatorsArr - req 1000 vs - 250000 vc 73.378 us/op 92.416 us/op 0.79
BLS verify - blst-native 1.1725 ms/op 1.4285 ms/op 0.82
BLS verifyMultipleSignatures 3 - blst-native 2.3832 ms/op 2.8654 ms/op 0.83
BLS verifyMultipleSignatures 8 - blst-native 5.1197 ms/op 6.1024 ms/op 0.84
BLS verifyMultipleSignatures 32 - blst-native 18.559 ms/op 22.164 ms/op 0.84
BLS aggregatePubkeys 32 - blst-native 24.575 us/op 29.186 us/op 0.84
BLS aggregatePubkeys 128 - blst-native 96.188 us/op 114.69 us/op 0.84
getAttestationsForBlock 49.398 ms/op 64.646 ms/op 0.76
isKnown best case - 1 super set check 265.00 ns/op 347.00 ns/op 0.76
isKnown normal case - 2 super set checks 256.00 ns/op 342.00 ns/op 0.75
isKnown worse case - 16 super set checks 260.00 ns/op 331.00 ns/op 0.79
CheckpointStateCache - add get delete 4.6320 us/op 5.8660 us/op 0.79
validate api signedAggregateAndProof - struct 2.6740 ms/op 3.2226 ms/op 0.83
validate gossip signedAggregateAndProof - struct 2.6701 ms/op 3.3276 ms/op 0.80
validate api attestation - struct 1.2766 ms/op 1.5934 ms/op 0.80
validate gossip attestation - struct 1.3010 ms/op 1.6007 ms/op 0.81
pickEth1Vote - no votes 1.0901 ms/op 1.3795 ms/op 0.79
pickEth1Vote - max votes 8.9998 ms/op 12.275 ms/op 0.73
pickEth1Vote - Eth1Data hashTreeRoot value x2048 8.2541 ms/op 10.166 ms/op 0.81
pickEth1Vote - Eth1Data hashTreeRoot tree x2048 13.951 ms/op 19.748 ms/op 0.71
pickEth1Vote - Eth1Data fastSerialize value x2048 546.70 us/op 777.65 us/op 0.70
pickEth1Vote - Eth1Data fastSerialize tree x2048 5.6931 ms/op 6.6088 ms/op 0.86
bytes32 toHexString 463.00 ns/op 620.00 ns/op 0.75
bytes32 Buffer.toString(hex) 286.00 ns/op 359.00 ns/op 0.80
bytes32 Buffer.toString(hex) from Uint8Array 426.00 ns/op 575.00 ns/op 0.74
bytes32 Buffer.toString(hex) + 0x 287.00 ns/op 359.00 ns/op 0.80
Object access 1 prop 0.14900 ns/op 0.20200 ns/op 0.74
Map access 1 prop 0.13900 ns/op 0.17700 ns/op 0.79
Object get x1000 6.8660 ns/op 9.5550 ns/op 0.72
Map get x1000 0.58400 ns/op 0.78900 ns/op 0.74
Object set x1000 46.944 ns/op 64.433 ns/op 0.73
Map set x1000 36.952 ns/op 47.571 ns/op 0.78
Return object 10000 times 0.22820 ns/op 0.26970 ns/op 0.85
Throw Error 10000 times 3.6952 us/op 4.6095 us/op 0.80
fastMsgIdFn sha256 / 200 bytes 3.1140 us/op 3.9850 us/op 0.78
fastMsgIdFn h32 xxhash / 200 bytes 272.00 ns/op 362.00 ns/op 0.75
fastMsgIdFn h64 xxhash / 200 bytes 333.00 ns/op 419.00 ns/op 0.79
fastMsgIdFn sha256 / 1000 bytes 10.838 us/op 13.546 us/op 0.80
fastMsgIdFn h32 xxhash / 1000 bytes 395.00 ns/op 503.00 ns/op 0.79
fastMsgIdFn h64 xxhash / 1000 bytes 400.00 ns/op 489.00 ns/op 0.82
fastMsgIdFn sha256 / 10000 bytes 99.333 us/op 121.68 us/op 0.82
fastMsgIdFn h32 xxhash / 10000 bytes 1.8600 us/op 2.2080 us/op 0.84
fastMsgIdFn h64 xxhash / 10000 bytes 1.2810 us/op 1.5380 us/op 0.83
enrSubnets - fastDeserialize 64 bits 1.2120 us/op 1.4820 us/op 0.82
enrSubnets - ssz BitVector 64 bits 423.00 ns/op 489.00 ns/op 0.87
enrSubnets - fastDeserialize 4 bits 164.00 ns/op 196.00 ns/op 0.84
enrSubnets - ssz BitVector 4 bits 416.00 ns/op 495.00 ns/op 0.84
prioritizePeers score -10:0 att 32-0.1 sync 2-0 95.777 us/op 126.29 us/op 0.76
prioritizePeers score 0:0 att 32-0.25 sync 2-0.25 117.04 us/op 158.94 us/op 0.74
prioritizePeers score 0:0 att 32-0.5 sync 2-0.5 154.09 us/op 169.50 us/op 0.91
prioritizePeers score 0:0 att 64-0.75 sync 4-0.75 272.83 us/op 336.05 us/op 0.81
prioritizePeers score 0:0 att 64-1 sync 4-1 315.61 us/op 396.68 us/op 0.80
array of 16000 items push then shift 1.4970 us/op 1.8360 us/op 0.82
LinkedList of 16000 items push then shift 8.4020 ns/op 10.748 ns/op 0.78
array of 16000 items push then pop 55.571 ns/op 69.349 ns/op 0.80
LinkedList of 16000 items push then pop 8.5630 ns/op 10.358 ns/op 0.83
array of 24000 items push then shift 2.3550 us/op 2.6413 us/op 0.89
LinkedList of 24000 items push then shift 8.5790 ns/op 10.288 ns/op 0.83
array of 24000 items push then pop 99.218 ns/op 131.50 ns/op 0.75
LinkedList of 24000 items push then pop 8.1580 ns/op 10.215 ns/op 0.80
intersect bitArray bitLen 8 6.3700 ns/op 7.9810 ns/op 0.80
intersect array and set length 8 54.451 ns/op 63.580 ns/op 0.86
intersect bitArray bitLen 128 29.961 ns/op 39.068 ns/op 0.77
intersect array and set length 128 730.19 ns/op 897.60 ns/op 0.81
bitArray.getTrueBitIndexes() bitLen 128 1.3000 us/op 1.6560 us/op 0.79
bitArray.getTrueBitIndexes() bitLen 248 2.3020 us/op 2.6970 us/op 0.85
bitArray.getTrueBitIndexes() bitLen 512 4.4490 us/op 5.1970 us/op 0.86
Buffer.concat 32 items 876.00 ns/op 1.1030 us/op 0.79
Uint8Array.set 32 items 1.5200 us/op 2.5640 us/op 0.59
transfer serialized Status (84 B) 1.7060 us/op 2.0520 us/op 0.83
copy serialized Status (84 B) 1.4000 us/op 1.6870 us/op 0.83
transfer serialized SignedVoluntaryExit (112 B) 1.7790 us/op 2.0920 us/op 0.85
copy serialized SignedVoluntaryExit (112 B) 1.4290 us/op 2.0250 us/op 0.71
transfer serialized ProposerSlashing (416 B) 1.9320 us/op 2.8810 us/op 0.67
copy serialized ProposerSlashing (416 B) 1.6560 us/op 2.9400 us/op 0.56
transfer serialized Attestation (485 B) 2.1200 us/op 3.2290 us/op 0.66
copy serialized Attestation (485 B) 1.9380 us/op 2.6990 us/op 0.72
transfer serialized AttesterSlashing (33232 B) 2.1430 us/op 2.7220 us/op 0.79
copy serialized AttesterSlashing (33232 B) 5.0650 us/op 6.7110 us/op 0.75
transfer serialized Small SignedBeaconBlock (128000 B) 2.6470 us/op 3.1780 us/op 0.83
copy serialized Small SignedBeaconBlock (128000 B) 13.677 us/op 18.895 us/op 0.72
transfer serialized Avg SignedBeaconBlock (200000 B) 2.8620 us/op 3.2890 us/op 0.87
copy serialized Avg SignedBeaconBlock (200000 B) 20.488 us/op 24.412 us/op 0.84
transfer serialized BlobsSidecar (524380 B) 2.7610 us/op 3.3920 us/op 0.81
copy serialized BlobsSidecar (524380 B) 85.863 us/op 87.581 us/op 0.98
transfer serialized Big SignedBeaconBlock (1000000 B) 2.7630 us/op 3.6580 us/op 0.76
copy serialized Big SignedBeaconBlock (1000000 B) 166.41 us/op 185.05 us/op 0.90
pass gossip attestations to forkchoice per slot 2.0975 ms/op 2.4131 ms/op 0.87
forkChoice updateHead vc 100000 bc 64 eq 0 2.0447 ms/op 2.7444 ms/op 0.75
forkChoice updateHead vc 600000 bc 64 eq 0 10.622 ms/op 15.487 ms/op 0.69
forkChoice updateHead vc 1000000 bc 64 eq 0 18.185 ms/op 26.981 ms/op 0.67
forkChoice updateHead vc 600000 bc 320 eq 0 16.219 ms/op 19.423 ms/op 0.84
forkChoice updateHead vc 600000 bc 1200 eq 0 80.827 ms/op 99.561 ms/op 0.81
forkChoice updateHead vc 600000 bc 64 eq 1000 18.711 ms/op 26.530 ms/op 0.71
forkChoice updateHead vc 600000 bc 64 eq 10000 20.654 ms/op 28.793 ms/op 0.72
forkChoice updateHead vc 600000 bc 64 eq 300000 27.746 ms/op 37.220 ms/op 0.75
computeDeltas 3.8143 ms/op 3.3833 ms/op 1.13
computeProposerBoostScoreFromBalances 380.50 us/op 461.34 us/op 0.82
altair processAttestation - 250000 vs - 7PWei normalcase 1.9687 ms/op 3.0526 ms/op 0.64
altair processAttestation - 250000 vs - 7PWei worstcase 3.1535 ms/op 3.8043 ms/op 0.83
altair processAttestation - setStatus - 1/6 committees join 169.79 us/op 173.76 us/op 0.98
altair processAttestation - setStatus - 1/3 committees join 341.20 us/op 322.47 us/op 1.06
altair processAttestation - setStatus - 1/2 committees join 451.88 us/op 441.22 us/op 1.02
altair processAttestation - setStatus - 2/3 committees join 568.98 us/op 581.78 us/op 0.98
altair processAttestation - setStatus - 4/5 committees join 803.26 us/op 748.55 us/op 1.07
altair processAttestation - setStatus - 100% committees join 930.56 us/op 903.00 us/op 1.03
altair processBlock - 250000 vs - 7PWei normalcase 9.5074 ms/op 10.256 ms/op 0.93
altair processBlock - 250000 vs - 7PWei normalcase hashState 16.391 ms/op 17.803 ms/op 0.92
altair processBlock - 250000 vs - 7PWei worstcase 37.098 ms/op 41.451 ms/op 0.90
altair processBlock - 250000 vs - 7PWei worstcase hashState 56.882 ms/op 68.929 ms/op 0.83
phase0 processBlock - 250000 vs - 7PWei normalcase 2.3103 ms/op 3.0779 ms/op 0.75
phase0 processBlock - 250000 vs - 7PWei worstcase 29.717 ms/op 37.156 ms/op 0.80
altair processEth1Data - 250000 vs - 7PWei normalcase 456.94 us/op 631.10 us/op 0.72
getExpectedWithdrawals 250000 eb:1,eth1:1,we:0,wn:0,smpl:15 7.1770 us/op 14.662 us/op 0.49
getExpectedWithdrawals 250000 eb:0.95,eth1:0.1,we:0.05,wn:0,smpl:219 55.750 us/op 83.848 us/op 0.66
getExpectedWithdrawals 250000 eb:0.95,eth1:0.3,we:0.05,wn:0,smpl:42 12.054 us/op 28.522 us/op 0.42
getExpectedWithdrawals 250000 eb:0.95,eth1:0.7,we:0.05,wn:0,smpl:18 7.2160 us/op 15.691 us/op 0.46
getExpectedWithdrawals 250000 eb:0.1,eth1:0.1,we:0,wn:0,smpl:1020 157.21 us/op 160.02 us/op 0.98
getExpectedWithdrawals 250000 eb:0.03,eth1:0.03,we:0,wn:0,smpl:11777 992.02 us/op 1.5842 ms/op 0.63
getExpectedWithdrawals 250000 eb:0.01,eth1:0.01,we:0,wn:0,smpl:16384 1.4516 ms/op 1.6811 ms/op 0.86
getExpectedWithdrawals 250000 eb:0,eth1:0,we:0,wn:0,smpl:16384 1.4588 ms/op 2.1995 ms/op 0.66
getExpectedWithdrawals 250000 eb:0,eth1:0,we:0,wn:0,nocache,smpl:16384 2.9986 ms/op 4.2154 ms/op 0.71
getExpectedWithdrawals 250000 eb:0,eth1:1,we:0,wn:0,smpl:16384 2.2498 ms/op 3.0623 ms/op 0.73
getExpectedWithdrawals 250000 eb:0,eth1:1,we:0,wn:0,nocache,smpl:16384 5.1484 ms/op 6.6233 ms/op 0.78
Tree 40 250000 create 316.88 ms/op 402.11 ms/op 0.79
Tree 40 250000 get(125000) 190.84 ns/op 248.98 ns/op 0.77
Tree 40 250000 set(125000) 848.71 ns/op 1.2224 us/op 0.69
Tree 40 250000 toArray() 17.344 ms/op 23.239 ms/op 0.75
Tree 40 250000 iterate all - toArray() + loop 17.414 ms/op 23.381 ms/op 0.74
Tree 40 250000 iterate all - get(i) 63.882 ms/op 87.545 ms/op 0.73
MutableVector 250000 create 10.980 ms/op 13.395 ms/op 0.82
MutableVector 250000 get(125000) 6.3260 ns/op 8.8110 ns/op 0.72
MutableVector 250000 set(125000) 253.14 ns/op 352.24 ns/op 0.72
MutableVector 250000 toArray() 2.8624 ms/op 4.7566 ms/op 0.60
MutableVector 250000 iterate all - toArray() + loop 3.2321 ms/op 4.8400 ms/op 0.67
MutableVector 250000 iterate all - get(i) 1.4684 ms/op 2.0256 ms/op 0.72
Array 250000 create 2.5391 ms/op 3.5404 ms/op 0.72
Array 250000 clone - spread 948.79 us/op 1.0557 ms/op 0.90
Array 250000 get(125000) 0.47900 ns/op 0.58200 ns/op 0.82
Array 250000 set(125000) 0.55100 ns/op 0.69900 ns/op 0.79
Array 250000 iterate all - loop 79.639 us/op 119.56 us/op 0.67
effectiveBalanceIncrements clone Uint8Array 300000 21.033 us/op 26.896 us/op 0.78
effectiveBalanceIncrements clone MutableVector 300000 257.00 ns/op 309.00 ns/op 0.83
effectiveBalanceIncrements rw all Uint8Array 300000 172.36 us/op 219.32 us/op 0.79
effectiveBalanceIncrements rw all MutableVector 300000 71.044 ms/op 92.943 ms/op 0.76
phase0 afterProcessEpoch - 250000 vs - 7PWei 102.49 ms/op 127.78 ms/op 0.80
phase0 beforeProcessEpoch - 250000 vs - 7PWei 32.555 ms/op 43.716 ms/op 0.74
altair processEpoch - mainnet_e81889 304.99 ms/op 370.73 ms/op 0.82
mainnet_e81889 - altair beforeProcessEpoch 58.925 ms/op 72.648 ms/op 0.81
mainnet_e81889 - altair processJustificationAndFinalization 13.343 us/op 19.300 us/op 0.69
mainnet_e81889 - altair processInactivityUpdates 5.2178 ms/op 6.3206 ms/op 0.83
mainnet_e81889 - altair processRewardsAndPenalties 62.784 ms/op 78.806 ms/op 0.80
mainnet_e81889 - altair processRegistryUpdates 2.2410 us/op 3.1150 us/op 0.72
mainnet_e81889 - altair processSlashings 452.00 ns/op 875.00 ns/op 0.52
mainnet_e81889 - altair processEth1DataReset 520.00 ns/op 665.00 ns/op 0.78
mainnet_e81889 - altair processEffectiveBalanceUpdates 1.2278 ms/op 1.7294 ms/op 0.71
mainnet_e81889 - altair processSlashingsReset 2.6420 us/op 3.5210 us/op 0.75
mainnet_e81889 - altair processRandaoMixesReset 4.9610 us/op 6.1700 us/op 0.80
mainnet_e81889 - altair processHistoricalRootsUpdate 618.00 ns/op 737.00 ns/op 0.84
mainnet_e81889 - altair processParticipationFlagUpdates 2.0740 us/op 3.8180 us/op 0.54
mainnet_e81889 - altair processSyncCommitteeUpdates 545.00 ns/op 1.0430 us/op 0.52
mainnet_e81889 - altair afterProcessEpoch 118.68 ms/op 154.49 ms/op 0.77
phase0 processEpoch - mainnet_e58758 349.13 ms/op 407.33 ms/op 0.86
mainnet_e58758 - phase0 beforeProcessEpoch 131.46 ms/op 156.65 ms/op 0.84
mainnet_e58758 - phase0 processJustificationAndFinalization 13.883 us/op 18.891 us/op 0.73
mainnet_e58758 - phase0 processRewardsAndPenalties 65.214 ms/op 58.110 ms/op 1.12
mainnet_e58758 - phase0 processRegistryUpdates 9.7690 us/op 13.438 us/op 0.73
mainnet_e58758 - phase0 processSlashings 513.00 ns/op 887.00 ns/op 0.58
mainnet_e58758 - phase0 processEth1DataReset 467.00 ns/op 940.00 ns/op 0.50
mainnet_e58758 - phase0 processEffectiveBalanceUpdates 1.3233 ms/op 1.4013 ms/op 0.94
mainnet_e58758 - phase0 processSlashingsReset 2.6080 us/op 2.9490 us/op 0.88
mainnet_e58758 - phase0 processRandaoMixesReset 4.4280 us/op 9.7990 us/op 0.45
mainnet_e58758 - phase0 processHistoricalRootsUpdate 385.00 ns/op 1.0850 us/op 0.35
mainnet_e58758 - phase0 processParticipationRecordUpdates 3.4450 us/op 5.5890 us/op 0.62
mainnet_e58758 - phase0 afterProcessEpoch 95.812 ms/op 125.40 ms/op 0.76
phase0 processEffectiveBalanceUpdates - 250000 normalcase 1.2201 ms/op 2.6190 ms/op 0.47
phase0 processEffectiveBalanceUpdates - 250000 worstcase 0.5 1.3896 ms/op 1.9697 ms/op 0.71
altair processInactivityUpdates - 250000 normalcase 23.591 ms/op 30.724 ms/op 0.77
altair processInactivityUpdates - 250000 worstcase 23.713 ms/op 30.561 ms/op 0.78
phase0 processRegistryUpdates - 250000 normalcase 7.8340 us/op 9.8080 us/op 0.80
phase0 processRegistryUpdates - 250000 badcase_full_deposits 289.18 us/op 463.50 us/op 0.62
phase0 processRegistryUpdates - 250000 worstcase 0.5 111.34 ms/op 178.54 ms/op 0.62
altair processRewardsAndPenalties - 250000 normalcase 73.756 ms/op 92.004 ms/op 0.80
altair processRewardsAndPenalties - 250000 worstcase 72.456 ms/op 93.638 ms/op 0.77
phase0 getAttestationDeltas - 250000 normalcase 7.2193 ms/op 10.625 ms/op 0.68
phase0 getAttestationDeltas - 250000 worstcase 7.6031 ms/op 9.7165 ms/op 0.78
phase0 processSlashings - 250000 worstcase 2.2536 ms/op 2.6816 ms/op 0.84
altair processSyncCommitteeUpdates - 250000 145.29 ms/op 186.33 ms/op 0.78
BeaconState.hashTreeRoot - No change 253.00 ns/op 309.00 ns/op 0.82
BeaconState.hashTreeRoot - 1 full validator 55.265 us/op 59.958 us/op 0.92
BeaconState.hashTreeRoot - 32 full validator 505.10 us/op 615.70 us/op 0.82
BeaconState.hashTreeRoot - 512 full validator 5.4429 ms/op 6.9734 ms/op 0.78
BeaconState.hashTreeRoot - 1 validator.effectiveBalance 64.958 us/op 83.981 us/op 0.77
BeaconState.hashTreeRoot - 32 validator.effectiveBalance 830.80 us/op 1.0753 ms/op 0.77
BeaconState.hashTreeRoot - 512 validator.effectiveBalance 11.555 ms/op 13.736 ms/op 0.84
BeaconState.hashTreeRoot - 1 balances 48.770 us/op 65.119 us/op 0.75
BeaconState.hashTreeRoot - 32 balances 451.25 us/op 517.60 us/op 0.87
BeaconState.hashTreeRoot - 512 balances 4.2231 ms/op 5.5757 ms/op 0.76
BeaconState.hashTreeRoot - 250000 balances 75.209 ms/op 92.814 ms/op 0.81
aggregationBits - 2048 els - zipIndexesInBitList 14.139 us/op 17.621 us/op 0.80
regular array get 100000 times 32.660 us/op 40.218 us/op 0.81
wrappedArray get 100000 times 32.642 us/op 39.511 us/op 0.83
arrayWithProxy get 100000 times 14.922 ms/op 17.255 ms/op 0.86
ssz.Root.equals 207.00 ns/op 273.00 ns/op 0.76
byteArrayEquals 212.00 ns/op 277.00 ns/op 0.77
shuffle list - 16384 els 6.5992 ms/op 8.6675 ms/op 0.76
shuffle list - 250000 els 97.397 ms/op 121.36 ms/op 0.80
processSlot - 1 slots 8.3410 us/op 9.4550 us/op 0.88
processSlot - 32 slots 1.2902 ms/op 1.4943 ms/op 0.86
getEffectiveBalanceIncrementsZeroInactive - 250000 vs - 7PWei 56.191 ms/op 59.458 ms/op 0.95
getCommitteeAssignments - req 1 vs - 250000 vc 2.4872 ms/op 3.2875 ms/op 0.76
getCommitteeAssignments - req 100 vs - 250000 vc 3.7051 ms/op 4.7590 ms/op 0.78
getCommitteeAssignments - req 1000 vs - 250000 vc 4.0101 ms/op 5.1554 ms/op 0.78
RootCache.getBlockRootAtSlot - 250000 vs - 7PWei 4.5000 ns/op 5.4900 ns/op 0.82
state getBlockRootAtSlot - 250000 vs - 7PWei 635.72 ns/op 708.43 ns/op 0.90
computeProposers - vc 250000 8.6856 ms/op 10.002 ms/op 0.87
computeEpochShuffling - vc 250000 95.068 ms/op 121.21 ms/op 0.78
getNextSyncCommittee - vc 250000 146.89 ms/op 164.83 ms/op 0.89
computeSigningRoot for AttestationData 13.416 us/op 14.004 us/op 0.96
hash AttestationData serialized data then Buffer.toString(base64) 2.2846 us/op 2.6087 us/op 0.88
toHexString serialized data 1.0471 us/op 1.2046 us/op 0.87
Buffer.toString(base64) 222.74 ns/op 250.66 ns/op 0.89

by benchmarkbot/action

@nflaig nflaig force-pushed the nflaig/eventstream-invalid-topic-err branch from 0e0feca to f07ac88 Compare July 23, 2023 08:50
@nflaig nflaig force-pushed the nflaig/eventstream-invalid-topic-err branch from f07ac88 to 82a5d57 Compare July 23, 2023 08:53
@wemeetagain wemeetagain merged commit 7b5fc63 into unstable Jul 24, 2023
12 checks passed
@wemeetagain wemeetagain deleted the nflaig/eventstream-invalid-topic-err branch July 24, 2023 17:06
@wemeetagain
Copy link
Member

🎉 This PR is included in v1.10.0 🎉

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

2 participants