Google Action requests not including parameters passed in previous response

google-assistant
v3

#1

Hello!

I’m currently running Jovo v3 hosted in AWS responding to requests from both Alexa and Google. In the last few months, I’ve been seeing some odd behavior from the Google Actions Builder side regarding the jovo session parameters that are sent with the request. Specifically, when a subsequent request comes in during an active session, Google is not preserving the session variable and jovo session parameters when the request comes in so, Jovo has no idea of the current active state.

Here is an example of the request coming in
{
“handler”: {
“name”: “MoreOptionsIntent”
},
“intent”: {
“name”: “MoreOptionsIntent”,
“params”: {},
“query”: “more options”
},
“scene”: {
“name”: “actions.scene.START_CONVERSATION”,
“slotFillingStatus”: “UNSPECIFIED”,
“slots”: {}
},
“session”: {
“id”: “ABwppHEbMrNO-eaKedaGr26YkdIr7pSLG-ADjQE4TSEFkmGUsERewfTJ9Zo2OVtUBXJ1JJe3SoBSfnra8_UK9fpsE4Az–jF5sg”,
“params”: {},
“typeOverrides”: [],
“languageCode”: “”
},
“user”: {
“locale”: “en-US”,
“params”: {
“userId”: “661a258e-c402-49ba-b84f-a4e23bc69592”
},
“accountLinkingStatus”: “ACCOUNT_LINKING_STATUS_UNSPECIFIED”,
“verificationStatus”: “VERIFIED”,
“packageEntitlements”: [],
“gaiamint”: “”,
“permissions”: [],
“lastSeenTime”: “2022-06-03T16:11:13Z”
},
“home”: {
“params”: {}
},
“device”: {
“capabilities”: [
“SPEECH”,
“RICH_RESPONSE”,
“WEB_LINK”,
“LONG_FORM_AUDIO”
],
“timeZone”: {
“id”: “America/Chicago”,
“version”: “”
}
}
}

The ‘session’ variable has ‘params’ and that params is empty {}. The odd part is that if I go to the assistant page listing and hit the ‘reset’ link on the bottom, the session storage appears to be returned with the subsequent request for the newly generated userId. This also appears to be random and not affect all users.

Here is a sample response sent back to Google
{
“prompt”: {
“firstSimple”: {
“speech”: “<audio src=“static_responses/unhandled_unhandled.mp3”/>”
},
“suggestions”: [
{
“title”: “Find a podcast”
},
{
“title”: “Recommend Something”
}
],
“content”: {
“card”: {
“text”: "Unfortunately, I can’t help you with that. "
}
}
},
“user”: {
“params”: {
“userId”: “37e8351b-9850-4cc4-9fa5-a49c57269ec6”
}
},
“session”: {
“id”: “ABwppHFrs0sPiuXgtPQMvJeEj7gtvF_Ju_IkYHUah7W2pLLv5zZgi3Hf39lJKJLdqjM-hATf9gqt223YZ2sYVupHnj2S50-XXYs”,
“params”: {
JOVO_SESSION”: {
“new”: false,
“reprompts”: {
“NO_INPUT1”: “<audio src=“static_responses/unhandled_unhandled_no_input.mp3”/>”
},
“createdAt”: “2022-06-03T16:26:59.159Z”
},
JOVO_STATE”: null,
“user_global_session”: {
“time_offset”: 0,
“user_id”: 90,
“on_curated_playlist”: false,
“session_id”: 24,
“media_item_id”: 58
},
“user_global”: {
“no_of_invocations”: 6,
“no_of_skipped_questionnaire”: 1,
“onboarding_finished”: true,
“first_time_learn_more”: true,
“install_id”: “37e8351b-9850-4cc4-9fa5-a49c57269ec6”,
“questionnaire_finished”: false,
“first_time_tom”: true,
“user_id”: 90
},
“learn_more_count”: 0,
“podcastName”: “Now what”,
“first_time_next_reco”: true,
“media_video_count”: 0,
“app_launched”: 6,
“session_learn_more”: false,
“media_item_topic_count”: 0,
“before_playing_media”: false,
“global_type”: 2,
“first_question_answered”: false,
“on_recommend_player”: true,
“learn_more_topics_randomization”: false,
“on_player”: true,
“recommended”: false,
“podcast_word”: “”,
“media_item_count”: 0,
“media_topic_count”: 0,
“topicCount”: 0,
“evaluate_first_TOM”: true
}
}
}

Anyone happen to run into something like this before? We are storing extra data in the jovo $session.$data object. Is there perhaps a limit we would be running into which would drop the data?

Thanks!
-Bill


#2

Hi @Hacksaw, welcome to the Jovo community :tada:

Thank you for the detail.

We’ve seen Google Assistant having problems with recognizing users, which could lead to the session storage being emptied. Maybe this post is helpful: Google Devices Rolling User Id

How much data are you storing? The Google Assistant docs aren’t referencing a limit, but there’s probably a total limit for the response size https://developers.google.com/assistant/conversational/storage-session