Bridge Error: "Failed to call update rows : Exceeds character limit. Please reduce."

Options
Zeb Loewenstein
Zeb Loewenstein ✭✭✭✭
edited 02/05/24 in API & Developers

I'm receiving the following error when attempting to run a Bridge workflow, which incorporates Adding / Updating a row from a different sheet. Our Bridge workflow here is a little more complex as it operates as an order queue from multiple sources; there's manipulation of the data before it gets moved to a centralized order tracker for processing.

  • The Add / Update logic allows us to be strategic in which field information to pass to destination sheets.
  • The Bridge workflow below is the final macro that contains every possible fields which could move to the final order tracker for processing. There are < 100 fields referenced between the Add and Update modules.
  • The only reason why I have Update modules was in an attempt to fix the below issue by trying to separate the data load into chunks.
  • We can't simply use "Move Row" logic as this will hit column limitations (> 200) in the destination sheet.
  • We can't use DataTable or DataShuttle here as these orders need to be processed to the destination sheet rather quickly (< 5 min).

I unfortunately can't reduce the number of columns attempting to transfer. I've tried using both a child workflow and a separate trigger to pass additional fields.

Does anyone know what this issue is referencing, and how to remedy? Perhaps using HTTP Request or Javascript if there is a limitation to characters in the standard Smartsheet Add Row / Update Row modules? This is a critical issue which has stopped our business operations. Any help would be greatly appreciated!



workflow execution failed: Plugin Error INVALID_DATA : failed to execute extension module : Failed to call update rows : Exceeds character limit. Please reduce.

Tags:

Answers

  • Zeb Loewenstein
    Zeb Loewenstein ✭✭✭✭
    edited 02/05/24
    Options

    Additional Note: this was working successfully in the current configuration on Friday (2/2/24), stopped working on Saturday (2/3/24).

    Relying on the native Smartsheet codebase to Add Row for large amounts of data now seems problematic. If anyone has the HTTP Request Call code or JavaScript code I could use to post data in a destination sheet would be greatly appreciated.

  • Brian_Richardson
    Brian_Richardson Overachievers
    Options

    Hey Zeb - you can definitely batch this up with Javascript and then push the resulting Adds in batches of 500 rows at a time. Check out my article on how I used code developed by Smartsheet to piece that together.

    However, big caveat here, you cannot natively call Smartsheet with Javascript in Bridge. Javascript can be used to process arrays and do all kinds of fancy things, but you still have to pass the resulting arrays back to an Add Row or Update Row step in Bridge to actually send it to the Smartsheet API. So you're still going to be subject to the limits imposed by the API.


    As far as the error, it sounds to me like maybe you're smashing together too much text into one column? Hard to tell. I bump into a similar error if I try to send the Delete Rows endpoint a list of row Ids that exceeds about 300... because they get pasted into the URL itself and it runs out of space. Perhaps something similar is happening here?

    You probably already saw it, but it's Update Row 2 that's erroring. I'd break up the cells that are being updated by that step into further additional update steps to try to pin down what cell specifically is driving the error.

    BRIAN RICHARDSON | PMO TOOLS AND RESOURCES | HE|HIM

    SEATTLE WA, USA

    IRON MOUNTAIN

  • Brian_Richardson
    Brian_Richardson Overachievers
    Options

    Just another thought - instead of relying on the Update Rows prebuilt step in Bridge, you can instead use the Call API module to call the Update Row endpoint and pass in batched information. You also have more control by doing this, as you can define the body more exactly to your specifications, possibly using Javascript to do that.

    Here's the API reference:

    And here's the Call API instructions

    https://help.smartsheet.com/articles/2482056-http-call-utility-function

    BRIAN RICHARDSON | PMO TOOLS AND RESOURCES | HE|HIM

    SEATTLE WA, USA

    IRON MOUNTAIN

  • Brian_Richardson
    Brian_Richardson Overachievers
    edited 02/06/24
    Options

    API reference doesn't seem to want to post. Weird. Here's the link in text form:

    smartsheet.redoc.ly/tag/rows#operation/update-rows

    BRIAN RICHARDSON | PMO TOOLS AND RESOURCES | HE|HIM

    SEATTLE WA, USA

    IRON MOUNTAIN

  • Zeb Loewenstein
    Zeb Loewenstein ✭✭✭✭
    Options

    @Brian_Richardson thanks for your reply! It helped me figure out a reasonable interim solution.

    The problem ended up being related to a Smartsheet technical issue, which the engineering team fixed.

    Best,

    Zeb