Issue with Deep Link - It is requiring browser refresh

I text/email a deep link to user to edit/update a specific row in a table like this where id is the key field for row to update/edit, view is a form view.

https://www.appsheet.com/start/(appid)#view=(viewname)&row=(id)

However, when user clicks on the link, it shows a blank form with blank id (and rest of the form) unless user refreshes browser. I have tried on both chrome and firefox with same behavior. Once user refreshes browser, it load the correct row. It looks like the link initially tries to create a new row until user refreshes browser.

Sounds like a bug to me - any ideas?

0 10 311
  • UX
10 REPLIES 10

I believe you are experiencing a Sync issue.  Sync on devices happen in 1 of 3 ways:

1) Manual Sync
2)  Sync on that device after user made some change
3)  Automatic 30 minutes background Sync 

In your use case, what normally has happened is that the user receiving the email isn't active in the app at that moment AND are in between background Syncs.  SO...when they click the link received in the email, their version of the app on their device has not yet been updated with the changes made by the initiating user.

There is a workaround...you can add a "force Sync" attribute - "&at=NOW()+1" - to the end of you link in the email.  You link would then look like this:

https://www.appsheet.com/start/(appid)#view=(viewname)&row=(id)&at=(NOW()+1)

Make sure the link is being generated properly.  The NOW()+1 portion should be represented in the resultant link as an URL Encoded date.

Please show your resulting link example (remove appid portion) and the expression you are using to construct the link.

Yes, I have it URL encoded: Here is a generated link i just tested:

https://www.appsheet.com/start/(appid)#view=IOP&row=93f51345&at=05%2F11%2F2022%2010%3A37%3A39

Thank you for your tip. I tried it but it still doesn't force refresh. I have enabled Sync at Start and Automatic Sync 

Screen Shot 2022-05-10 at 10.40.34 AM.png

Here is the the formula used to generate link:

https://www.appsheet.com/start/(appid)#view=IOPHQ&row=<<[id]>>&at=<< ENCODEURL(NOW()+1)>>

Here is a generated link:

https://www.appsheet.com/start/(appid)#view=IOP&row=93f51354&at=05%2F11%2F2022%2010%3A37%3A39

You mentioned that "It looks like the link initially tries to create a new row until user refreshes browser."  

Does a Sync resolve the problem?

If you have another way to find the row in the app, then check that the new row or row edit does indeed exist - without performing any additional refresh or Sync.

If you find that the row doesn't appear in the app anywhere, then it's possible that maybe the row hasn't yet been written to the datasource.  To check this, perform the function in the app that creates the row or perform a new edit.  Watch the datasource for when the new row or edit appears, THEN click the link.  If it opens with the expected row details then maybe there is some delay in the details being written to the data source.

Yes, I have verified that the row exists by this:

Open the link on one browser, it opens a blank form. When I refresh browser, it opens form with correct row. I can edit and save row.
Then I open the same link in another browser or another device. It again opens a blank form till I refresh browser. 
I also query DB to see that row exists.
It looks like a bug to me.

Many App Creators depend daily on the exact feature you are trying to create.  I don't think there's a bug unless it was very recently introduced.  But if that were the case, the community would have gone crazy!

More than likely something within your implementation is not setup quite right.  The most common cause is failure to perform a Sync to update with the new data before trying to access the Form through the link.  Since you applied the "force sync" attribute and it still doesn't work, you'll need to perform some careful step-by-step analysis to determine where the issue might be.

The next most common cause is a delay in the data getting updated.   Try waiting for 5 minutes before clicking on the Link.  Beyond that it's really hard to help without knowing more details about your app and process.

Finally I figured out the culprit, which sounds like a bug to me. 


When Secure Options > Require User Consent is checked, it prompts user to accept a notice but causes deep link to specific row not to load till browser is refreshed. 

When this option is turned off, it works fine.

 

Screen Shot 2022-05-10 at 10.09.34 PM.png
 

 

Good find!!!   That one is new to me.

Top Labels in this Space