Plugin Documentation

KinesisStream
Amazon Kinesis and Data Firehose for Blueprints and C++

Stream telemetry and analytics events from your game into Amazon Kinesis Data Streams or Amazon Data Firehose, with buffering, partial-failure retries, an offline disk spool, sampling and opt-out — and read streams back with a polling consumer that keeps checkpoints. Built on the official AWS SDK for C++ with Amazon Cognito credentials.

v1.0
UE 4.27 & 5.8
Win64, Linux & Android
88 Blueprint nodes
Category Networking
Alpha XP

Overview

KinesisStream connects Unreal Engine 4.27 and 5.8 to Amazon Kinesis Data Streams and Amazon Data Firehose. The KinesisStream Telemetry component turns gameplay into newline-delimited JSON events with standard fields and sends them in batches; Firehose delivers them to S3 (for Athena, Glue or any data lake) or to an HTTP endpoint, and Kinesis data streams feed real-time consumers such as Lambda, Managed Flink or your own servers. All requests run on background worker threads; every result arrives on the game thread.

  • KinesisStream Telemetry component: Track Event with properties and numbers, standard fields (event id, UTC timestamp, session, player, build, platform, map, sequence), buffering by count / bytes / age, offline spool on disk with a size cap and replay, per-session sampling, persisted Opt Out / Opt In, global properties, session events.
  • Data streams: Put Record, Put Records (500 records / 5 MB per request, retries only the failed entries with back-off), shard iterators (Trim Horizon, Latest, At Timestamp, At / After Sequence Number), Get Records, Read Records, List Shards, Describe Stream Summary, List Streams.
  • KinesisStream Consumer component: polling consumer for one shard or all shards, new shards after resharding, iterator renewal, checkpoints saved to disk, lag (MillisBehindLatest), back-off.
  • Firehose: Put Firehose Record, Put Firehose Record Batch (500 / 4 MiB, partial-failure retry), Describe and List Delivery Streams.
  • Admin: Create / Delete Stream (on-demand or provisioned), retention, Update Shard Count, Wait For Stream Active, Create Delivery Stream To S3 / To HTTP Endpoint, Delete Delivery Stream.
  • Helpers: Kinesis partition-key hashing and shard lookup, record builders, UTF-8 conversion, JSON line parsing, ARNs, JSON helpers.
Polling onlyThe consumer uses Get Records over plain HTTPS. Enhanced fan-out (SubscribeToShard) needs HTTP/2, which the engine's libcurl on Linux and Android does not provide, so it is intentionally not used.

Requirements

RequirementDetails
Unreal Engine4.27 and 5.8
PlatformsWin64, Linux and Android
ModulesKinesisStream (Runtime), KinesisStreamSdk (prebuilt AWS SDK for C++ 1.11.916 in Source/ThirdParty)
DependenciesNo other plugins. On Linux and Android the SDK uses the engine's libcurl, OpenSSL and certificate store.
AWSAn AWS account. Kinesis, Firehose, S3 and Cognito usage is billed by AWS.

Installation

  1. Install KinesisStream from Fab into your engine, or copy the KinesisStream folder into your project's Plugins folder.
  2. Enable KinesisStream in Edit > Plugins and restart the editor.
  3. Open Project Settings > Plugins > KinesisStream and set Region, Identity Pool Id and Default Stream Name and / or Default Delivery Stream Name.
  4. C++ only: add PublicDependencyModuleNames.Add("KinesisStream"); to your Build.cs.
Several AWS plugins in one projectEach Alpha XP cloud plugin carries its own copy of the SDK under a plugin-specific name, so they install side by side without conflicts.

Setting up AWS

  1. In Amazon Cognito create an identity pool with guest access (telemetry usually starts before sign-in).
  2. Create the destination: a Firehose stream (Direct PUT, destination S3, buffering 5 MB / 300 s) for analytics in S3, and / or an on-demand Kinesis data stream for real-time processing. Editor tools can do this with Create Delivery Stream To S3 and Create Stream.
  3. Give the guest / player role of the pool only the write actions on those resources:
{
  "Version": "2012-10-17",
  "Statement": [
    {
      "Effect": "Allow",
      "Action": ["kinesis:PutRecord", "kinesis:PutRecords"],
      "Resource": "arn:aws:kinesis:us-east-1:123456789012:stream/mygame-telemetry"
    },
    {
      "Effect": "Allow",
      "Action": ["firehose:PutRecord", "firehose:PutRecordBatch"],
      "Resource": "arn:aws:firehose:us-east-1:123456789012:deliverystream/mygame-events-to-s3"
    }
  ]
}

Consumers (dedicated servers, live-ops tools, spectator / replay clients) need the read actions on the stream:

{
  "Effect": "Allow",
  "Action": ["kinesis:DescribeStreamSummary", "kinesis:ListShards", "kinesis:GetShardIterator", "kinesis:GetRecords"],
  "Resource": "arn:aws:kinesis:us-east-1:123456789012:stream/mygame-telemetry"
}
Admin nodesCreate / Delete Stream, Increase / Decrease Stream Retention, Update Shard Count, Create Delivery Stream To S3 / To HTTP Endpoint and Delete Delivery Stream need kinesis:CreateStream, kinesis:DeleteStream, kinesis:IncreaseStreamRetentionPeriod, kinesis:DecreaseStreamRetentionPeriod, kinesis:UpdateShardCount, kinesis:AddTagsToStream, firehose:CreateDeliveryStream, firehose:DeleteDeliveryStream and iam:PassRole on the Firehose delivery role. List Streams / List Delivery Streams need kinesis:ListStreams / firehose:ListDeliveryStreams, Describe Delivery Stream needs firehose:DescribeDeliveryStream. Use them from editor utilities and servers with Static Keys or the Default Credential Chain — never grant them to the player role.

The Firehose delivery role is trusted by firehose.amazonaws.com and allowed s3:PutObject, s3:GetBucketLocation, s3:ListBucket and s3:AbortMultipartUpload on the bucket.

Never ship access keysStatic keys in the settings end up in DefaultGame.ini and in packaged games. Shipping builds refuse settings keys unless Allow Static Keys In Shipping is enabled.

Quick start

Analytics events into S3 (Firehose)

  1. Set Default Delivery Stream Name in the settings.
  2. Add a KinesisStream Telemetry component to your GameState (or an actor that lives for the whole session). Set Destination = Data Firehose.
  3. Call Track Event with Event Name level_complete, Properties level=forest_02 and Values time=93.5, stars=3.
  4. After a few minutes (the Firehose buffer) the events appear in your bucket as .ndjson objects, one JSON line per event — ready for an Athena table.
  5. Offer a privacy switch with Opt Out / Opt In; the choice is remembered.

Real-time stream (Kinesis)

  1. Set Default Stream Name. Use Put Record for single records or Put Records for batches; check Result > Failed Count.
  2. On a server or tool, add a KinesisStream Consumer component, Starting Position Latest, and bind On Records. Call Start Consumer. Each record has Data (text), Bytes, Partition Key, Sequence Number and Arrival Time; use Parse Event Line for telemetry lines.
  3. Restart the game: the consumer resumes after its saved checkpoints.

Telemetry component

  • Buffering: a batch is sent when Max Batch Records (500) or Max Batch Bytes (1 MB) are queued, when the oldest event is Max Age Seconds (10) old, or on Flush Now. One flush runs at a time; each flush retries rejected records (Max Retries rounds).
  • Offline spool: when three flushes in a row deliver nothing (no network, throttling) the queue is written to Saved/KinesisStream/spool/*.ndjson and flushing backs off (2 … 60 s). When a flush succeeds again the spool is replayed. At end of play the queue is spooled and sent on the next start (Replay Spool On Start). Max Spool MB caps the folder; the oldest files go first. Without the spool, end of play sends the rest fire-and-forget.
  • Sessions and sampling: a session starts automatically (session id GUID, sequence numbers from 1). Sampling Rate is decided per session so sampled sessions are complete. session_start / session_end events (duration_seconds, event_count) are optional.
  • Partition keys (Kinesis): session id (default, keeps a session in order), player id, event name or random.
  • Privacy: Opt Out clears the queue, optionally deletes the spool and stops tracking; Persist Opt Out stores the choice in Saved/KinesisStream/telemetry-optout.flag.
A flush in flight at end of playis not re-spooled; if it fails, those events are lost. Call End Session (which flushes) a moment before quitting when every event counts.

Consumer component

  • Polls every Poll Interval seconds (default 1; Kinesis allows 5 Get Records calls per second per shard shared by all readers) with Max Records Per Poll (1000).
  • Shard Id empty = every shard. The shard list is refreshed every Shard Refresh Interval and as soon as a shard closes; shards found after the start (children of a reshard) are read from their trim horizon so no record is skipped. Parent and child shards are polled in parallel, so records around a reshard can interleave.
  • Iterators expire after 5 minutes; an expired iterator is renewed from the checkpoint automatically.
  • Checkpoints: with Auto Checkpoint the last sequence number of each delivered page becomes the checkpoint; otherwise call Set Checkpoint after processing. They are saved every Checkpoint Save Interval seconds, on Stop and at end of play to Saved/KinesisStream/checkpoints/<name>.ini.
  • Errors: throttling and network errors back off (1 … Max Backoff Seconds); permanent errors (stream not found, access denied, not configured) stop the consumer and fire On Consumer Stopped.

Node reference

All 88 nodes, grouped by Blueprint category. Latent nodes run in the background, fire exactly one final pin on the game thread and can be stopped with Cancel. Empty Stream Name / Delivery Stream Name inputs use the defaults from the settings. Nodes marked (admin) need admin IAM permissions.

Config and identity

NodeKindInputsOutputsPurpose
Set RegionCallableRegion-Switches the AWS region for every following request.
Set Credential ModeCallableMode-Overrides the credential mode from the settings.
Set Login TokenCallableProvider, Token-Signs the player in to the identity pool with a provider token.
Clear Login TokensCallable--Forgets all tokens; the player becomes a guest.
Set Static CredentialsCallableAccess Key Id, Secret Access Key, Session Token-Uses these keys from now on (Static Keys mode).
Get Identity IdPure-Identity IdThe player's Cognito identity id (empty until resolved).
Make User Pool Provider NamePureRegion, User Pool IdProviderLogin key of a Cognito user pool.
Is ConfiguredPure-bool, ProblemFalse plus a reason when the settings are incomplete.
Set Default StreamsCallableStream Name, Delivery Stream Name-Runtime override of the default stream names (empty keeps the setting).
Resolve IdentityLatentForce RefreshOn Success / On Failure (Identity Id, Error)Fetches Cognito credentials now so errors show up early.
CancelCallable(latent node)-None of the node's pins fire any more.
Is FinishedPure(latent node)boolTrue after the node finished or was cancelled.

Data Streams

NodeKindInputsOutputsPurpose
Put RecordLatentData, Partition Key, Stream Name, Explicit Hash Key, Sequence Number For OrderingOn Success / On Failure (Result, Error)Writes one text record; Result has Shard Id and Sequence Number.
Put RecordsLatentEntries, Stream Name, Max RetriesOn Success / On Failure (Batch Result, Error)Writes many records (500 / 5 MB per request), retries only the failed entries with back-off; one result per entry.
Get Shard IteratorLatentShard Id, Iterator Type, Sequence Number, Timestamp, Stream NameOn Success / On Failure (Iterator, Error)A read position (valid 5 minutes).
Get RecordsLatentShard Iterator, Limit, Shard IdOn Success / On Failure (Page, Error)Records, next iterator, lag, child shards, closed flag.
Read RecordsLatentShard Id, Starting Position, Sequence Number, Timestamp, Stream Name, LimitOn Success / On Failure (Page, Error)Iterator plus the first page in one node.
List ShardsLatentStream Name, Filter, Filter Shard Id, Filter Time, Next Token, Max ResultsOn Success / On Failure (Page, Error)Shards with hash key and sequence ranges, open flag; paged.
Describe Stream SummaryLatentStream NameOn Success / On Failure (Summary, Error)Status, capacity mode, retention, open shards, consumers, encryption.
List StreamsLatentNext Token, LimitOn Success / On Failure (Page, Error)Stream names and summaries of the account and region; paged.

Firehose

NodeKindInputsOutputsPurpose
Put Firehose RecordLatentData, Delivery Stream Name, Append NewlineOn Success / On Failure (Result, Error)Sends one record (up to 1000 KiB); Result has the Record Id.
Put Firehose Record BatchLatentRecords, Delivery Stream Name, Append Newline, Max RetriesOn Success / On Failure (Batch Result, Error)Sends many records (500 / 4 MiB per request), retries only the failed ones.
Describe Delivery StreamLatentDelivery Stream NameOn Success / On Failure (Info, Error)Status, type, timestamps, failure, encryption, S3 / HTTP destination and buffering.
List Delivery StreamsLatentExclusive Start Name, LimitOn Success / On Failure (Page, Error)Firehose stream names; Has More for paging.

Admin

NodeKindInputsOutputsPurpose
Create StreamLatentStream Name, Capacity Mode, Shard Count, TagsOn Success / On Failure (Error)(admin) Creates an on-demand or provisioned stream.
Delete StreamLatentStream Name, Enforce Consumer DeletionOn Success / On Failure (Error)(admin) Deletes a stream and its data (no default name).
Increase Stream RetentionLatentStream Name, Retention HoursOn Success / On Failure (Error)(admin) Up to 8760 hours.
Decrease Stream RetentionLatentStream Name, Retention HoursOn Success / On Failure (Error)(admin) Down to 24 hours.
Update Shard CountLatentStream Name, Target Shard CountOn Success / On Failure (Result, Error)(admin) Uniform resharding of a provisioned stream.
Wait For Stream ActiveLatentStream Name, Poll Interval Seconds, Timeout SecondsOn Success / On Failure (Summary, Error)Polls until the stream is ACTIVE.
Create Delivery Stream To S3LatentDelivery Stream Name, Destination (role, bucket, prefixes, buffering, compression, extension)On Success / On Failure (Arn, Error)(admin) Direct-put Firehose stream into S3.
Create Delivery Stream To HTTP EndpointLatentDelivery Stream Name, Destination (url, name, access key, role, backup bucket, buffering, gzip)On Success / On Failure (Arn, Error)(admin) Direct-put Firehose stream to an HTTPS endpoint with S3 backup.
Delete Delivery StreamLatentDelivery Stream Name, Allow Force DeleteOn Success / On Failure (Error)(admin) Deletes a Firehose stream (no default name).

Records

NodeKindInputsOutputsPurpose
Make Record EntryPureData, Partition Key, Explicit Hash KeyEntryText record for Put Records (empty key = random).
Make Record Entry From BytesPureBytes, Partition Key, Explicit Hash KeyEntryBinary record for Put Records.
String To UTF-8 BytesPureTextBytesUTF-8 encoding.
UTF-8 Bytes To StringPureBytesTextUTF-8 decoding.
Hash Partition KeyPurePartition KeyHash Key (decimal)The 128-bit MD5 hash key Kinesis uses for shard routing.
Get Shard For Partition KeyPurePartition Key, Shards, Explicit Hash Keybool, Shard IdWhich shard of a List Shards result a key lands on (find hot keys).
Make Random Partition KeyCallable-KeyA GUID key that spreads records over all shards.
Split JSON LinesPureTextLinesSplits newline-delimited JSON, skipping empty lines.
Make Stream ArnPureAccount Id, Stream Name, RegionArnarn:aws:kinesis:<region>:<account>:stream/<name>.
Get Name From ArnPureArnNameStream / delivery stream name from an ARN.
Is Retryable Error CodePureError CodeboolTrue for throttling, internal and network errors.

Events

NodeKindInputsOutputsPurpose
Make EventPureName, Properties, ValuesEventBuilds an event for Track Prepared Event / Event To JSON Line.
Make PropertiesPureKeys, ValuesPropertiesProperty map from two parallel arrays.
Add Event PropertyPureEvent, Key, ValueEventAdds a text property.
Add Event ValuePureEvent, Key, ValueEventAdds a numeric value.
Event To JSON LinePureEvent, Append NewlineLineSerializes an event (event, event_id, ts, props, values).
Parse Event LinePureLinebool, Event, Standard FieldsReads a telemetry line back (consumers, tools).
Make ISO 8601 TimestampPureTimeTextUTC time as 2026-10-28T14:03:07.123Z.

JSON

NodeKindInputsOutputsPurpose
Struct To JSONCallableStruct (any)bool, JsonAny struct to a JSON object string.
JSON To StructCallableJsonbool, Out Struct (any)Fills a struct from JSON.
Get JSON FieldPureJson, Pathbool, ValueOne value by path such as props.level.

Consumer (KinesisStream Consumer component)

NodeKindInputsOutputsPurpose
Start ConsumerCallableStream Override-Starts polling (resumes from checkpoints).
Stop ConsumerCallable--Stops polling and saves the checkpoints.
Is RunningPure-boolTrue while started.
Get LagPure-MillisecondsLargest MillisBehindLatest over the open shards.
Get Shard LagPureShard IdMillisecondsLag of one shard (-1 = not tracked).
Get CheckpointPureShard IdSequence NumberLast processed record of a shard.
Set CheckpointCallableShard Id, Sequence Number-Manual checkpointing (Auto Checkpoint off).
Save CheckpointsCallable-boolWrites the checkpoint file now.
Reset CheckpointsCallable--Forgets all checkpoints (memory and file).
Get Shard StatesPure-Shard StatesCheckpoint, lag, records and finished flag per shard.
Get StatsPure-Consumer StatsRecords, polls, errors, renewals, shards, lag, uptime, last error.
Set Poll IntervalCallableSeconds-Changes the poll interval (0.2 - 60 s).

Events: On Records (Records, Shard Id, Millis Behind Latest), On Shard Finished, On Consumer Error, On Consumer Stopped.

Telemetry (KinesisStream Telemetry component)

NodeKindInputsOutputsPurpose
Track EventCallableEvent Name, Properties, ValuesboolQueues one event with the standard fields.
Track Prepared EventCallableEventboolQueues an event from Make Event (keeps its timestamp / id).
Flush NowCallable-boolSends the queue now.
Get Queue SizePure-CountEvents waiting in memory.
Get Dropped CountPure-CountEvents lost for good since BeginPlay.
Set Global PropertyCallableKey, Value-Adds a property to every following event.
Remove Global PropertyCallableKeyboolRemoves one global property.
Clear Global PropertiesCallable--Removes all global properties.
Get Global PropertiesPure-MapThe current global properties.
Start SessionCallablePropertiesSession IdNew session (sampling decided, session_start event).
End SessionCallable--session_end event and a flush.
Get Session IdPure-Session IdEmpty when no session runs.
Set Player IdCallableNew Player Id-player_id of the following events.
Opt OutCallableDelete Spool-Stops tracking, clears the queue (persisted).
Opt InCallable--Allows tracking again.
Is Opted OutPure-boolThe player's privacy choice.
Set Sampling RateCallableRate-Share of sessions that send events (next session).
Get StatsPure-Telemetry StatsTracked, sampled out, sent, failed, dropped, spooled, replayed, flushes, queue bytes.
Replay SpoolCallable-Loaded CountLoads spooled events into the queue now.
Get Spool SizePure-BytesSize of the spool folder.
Clear SpoolCallable-Deleted FilesDeletes every spool file.
Set DestinationCallableNew Destination, New Stream Name-Switches between Kinesis and Firehose at runtime.

Events: On Flushed (Sent Count, Failed Count), On Failed (Error, Lost Count).

All latent node classes (UKinesisStreamPutRecordsAction and the others) can be created from C++ through their static factory functions; bind the delegates, then call Activate().

Event line format

Each telemetry event is one JSON object on one line (UTF-8, followed by \n), one record per event:

{"event":"level_complete","event_id":"3f0c...","ts":"2026-10-28T14:03:07.123Z","session_id":"9b1e...","player_id":"p-1042",
 "build":"1.4.0","platform":"Windows","map":"Forest_02","seq":17,"props":{"ab_group":"B","level":"forest_02"},"values":{"stars":3,"time":93.5}}

Global properties are merged into props (event properties win). Numbers without a fraction are written as integers. In Athena use the OpenX JSON SerDe with props as map<string,string> and values as map<string,double>.

C++ API

#include "KinesisStreamLibrary.h"

TArray<FKinesisStreamRecordEntry> Entries;
Entries.Add(UKinesisStreamLibrary::MakeRecordEntry(TEXT("{\"hp\":42}"), TEXT("player-7"), FString()));
UKinesisStreamLibrary::PutRecordsNative(TEXT("mygame-telemetry"), Entries, 3,
	FKinesisStreamNativePutDelegate::CreateLambda([](const FKinesisStreamPutBatchResult& Result, const FKinesisStreamError& Error)
	{
		UE_LOG(LogTemp, Log, TEXT("%d stored, %d failed %s"), Result.SucceededCount, Result.FailedCount, *Error.Message);
	}));

FirehosePutRecordBatchNative does the same for Firehose; BuildEventLine serializes an event with an optional FKinesisStreamEventContext.

Types

TypeKindMembers
FKinesisStreamRecordEntryStructData, Bytes, Partition Key, Explicit Hash Key
FKinesisStreamPutResult / FKinesisStreamPutBatchResultStructIndex, Success, Shard Id, Sequence Number, Error Code / Message, Attempts; Results, Succeeded / Failed Count, Request Count, Retry Rounds
FKinesisStreamRecord / FKinesisStreamRecordsPageStructData, Bytes, Partition Key, Sequence Number, Arrival Time, Shard Id, Encrypted; Records, Next Shard Iterator, Millis Behind Latest, Child Shard Ids, Shard Closed
FKinesisStreamShard / FKinesisStreamShardPageStructShard Id, Parent / Adjacent Parent, Starting / Ending Hash Key, Starting / Ending Sequence Number, Open; Shards, Next Token
FKinesisStreamSummary / FKinesisStreamListPageStructStream Name, Arn, Status, Capacity Mode, Retention Hours, Open Shards, Consumers, Creation Time, Encryption, Key Id; Names, Streams, Has More, Next Token
FKinesisStreamShardCountResultStructStream Name, Arn, Current / Target Shard Count
FKinesisStreamFirehoseResult / FKinesisStreamFirehoseBatchResultStructIndex, Success, Record Id, Error Code / Message, Attempts; Results, counts, Request Count, Retry Rounds, Encrypted
FKinesisStreamDeliveryStreamInfo / PageStructName, Arn, Status, Type, Version Id, Create / Last Update Time, Failure Type / Details, Encryption Status, Destination Ids, S3 Bucket / Prefix, HTTP Url / Name, Buffer Size / Interval
FKinesisStreamS3DestinationConfig / FKinesisStreamHttpEndpointConfigStructRole, bucket, prefixes, buffering, compression, extension; url, name, access key, role, backup bucket, backup all, buffering, gzip
FKinesisStreamEvent / FKinesisStreamPropertiesStructName, Properties, Values, Timestamp, Event Id; Values (map)
FKinesisStreamTelemetryStats / FKinesisStreamConsumerStats / FKinesisStreamShardStateStructComponent counters (see Get Stats / Get Shard States)
FKinesisStreamErrorStructCode, Message, Http Status, Retryable
EnumsEnumEKinesisStreamCredentialMode, EKinesisStreamIteratorType, EKinesisStreamCapacityMode, EKinesisStreamShardFilter, EKinesisStreamDestination, EKinesisStreamPartitionMode, EKinesisStreamCompression

Settings

Project Settings > Plugins > KinesisStream (saved to DefaultGame.ini). Changes apply to the next request.

SettingDefaultDescription
Regionus-east-1Region of your streams and identity pool.
Credential ModeCognito Identity PoolCognito Identity Pool, Static Keys or Default Credential Chain.
Identity Pool Id(empty)For example us-east-1:01234567-89ab-cdef-0123-456789abcdef.
Allow Guest AccessOnUnauthenticated identities before Set Login Token.
Access Key Id / Secret Access Key(empty)Static Keys mode - development and servers only.
Allow Static Keys In ShippingOffSettings keys are refused in Shipping builds unless enabled.
Endpoint Override(empty)Custom endpoint such as a local emulator.
Request Timeout Ms / Connect Timeout Ms30000 / 5000Time limits per request.
Max Retries3Automatic retries of whole requests with back-off.
Worker Threads4Background threads that run requests.
Verify SSL / Log Sdk WarningsOn / OnTLS verification; SDK warnings to LogKinesisStream.
Default Stream Name(empty)Kinesis data stream (name or ARN) used when a node leaves Stream Name empty.
Default Delivery Stream Name(empty)Firehose stream used when a node leaves Delivery Stream Name empty.

Troubleshooting

Error codeCause and fix
NotConfigured / MissingStreamIdentity Pool Id or the default stream names are missing in Project Settings > Plugins > KinesisStream.
AccessDeniedExceptionThe role lacks the action on the stream (for example kinesis:PutRecords or firehose:PutRecordBatch). See Setting up AWS.
ResourceNotFoundExceptionWrong stream name, another region, or the stream is still being created (Wait For Stream Active).
ProvisionedThroughputExceededExceptionA shard received more than 1 MB/s or 1000 records/s (or reads exceeded 5/s). Retried automatically; use on-demand capacity, more shards or random partition keys.
ExpiredIteratorExceptionShard iterators live 5 minutes. The consumer renews them; with Get Records request a new one.
InvalidArgumentExceptionEmpty or too long partition key, a record over the size limit or a malformed sequence number.
PartialFailureSome records were rejected: check each result's Error Code. Throttled records can simply be resent.
UnavailableThe SDK library could not be loaded or the engine is shutting down. See the Output Log (LogKinesisStream).

Credits

© 2026 Alpha XP — alphaxp.net · Support: support@alphaxp.net. Includes the AWS SDK for C++ and the AWS Common Runtime (Apache License 2.0). Built for Unreal Engine 4.27 and 5.8.