I found out the problem. On the Firehose “put_record” API Call, the input is not an encoded base64, it is just supposed to be a string. On the backend they do the encoding so when it shows up on retrieving the record, it is encoded.
This was not clear to me from the docs as I read it here: boto3 put_record
So all I did was change my input to “json.dumps(my_dict)” to the API Call and on the other end I got the expected base64 encoded string
CLICK HERE to find out more related problems solutions.