Uploaded image for project: 'Jira Platform Cloud'
  1. Jira Platform Cloud
  2. JRACLOUD-81923

Trello import to JIRA fails due to Trello API Rate Limiting.

      Summary

      Using the "Import from Trello" external service importer built into JIRA can easily fail due to API rate limiting from Trello.

      Environment

      Cloud

      Steps to Reproduce

      1. create a trello board with more than 300 objects.
      2. perform the import from Trello into JIRA.

      Expected Results

      The import completes successfully.

      Actual Results

      The import fails and returns an error like this:

      "Unexpected failure occurred. Importer will stop immediately. Data may be in an unstable state: Error "429: {"error":"RATE_LIMIT_EXCEEDED","message":"Exceeded rate limit to /1/member"}" returned when getting user with the ID {1}.: java.lang.IllegalStateException: Expected BEGIN_OBJECT but was NUMBER at line 1 column 4 path $: Expected BEGIN_OBJECT but was NUMBER at line 1 column 4 path $"
      

      Stacktrace found in Jira logs:

      2018-10-12 06:18:48.238	ERROR	com.atlassian.jira.plugins.importer.imports.importer.impl.DefaultJiraDataImporter	Unexpected failure occurred. Importer will stop immediately. Data may be in an unstable state	Error "429: {"error":"RATE_LIMIT_EXCEEDED","message":"Exceeded rate limit to /1/member"}" returned when getting user with the ID {1}.	com.atlassian.jira.plugins.importer.trello.fetch.TrelloParseException: Error "429: {"error":"RATE_LIMIT_EXCEEDED","message":"Exceeded rate limit to /1/member"}" returned when getting user with the ID {1}.
       at com.atlassian.jira.plugins.importer.trello.fetch.TrelloParser.getUser(TrelloParser.java:78)
       at com.atlassian.jira.plugins.importer.trello.transformers.CardTransformerImpl.getAttachments(CardTransformerImpl.java:417)
       at com.atlassian.jira.plugins.importer.trello.transformers.CardTransformerImpl.createBasicIssue(CardTransformerImpl.java:99)
       at com.atlassian.jira.plugins.importer.trello.transformers.CardTransformerStrategyProviderImpl.lambda$null$2(CardTransformerStrategyProviderImpl.java:26)
       at java.util.Optional.map(Optional.java:215)
       at com.atlassian.jira.plugins.importer.trello.transformers.CardTransformerStrategyProviderImpl.lambda$convertToAgilityIssue$3(CardTransformerStrategyProviderImpl.java:26)
       at com.atlassian.jira.plugins.importer.trello.TrelloImporterClient.lambda$getIssueIterator$0(TrelloImporterClient.java:128)
       at java.util.stream.ReferencePipeline$3$1.accept(ReferencePipeline.java:193)
       at java.util.ArrayList$ArrayListSpliterator.tryAdvance(ArrayList.java:1359)
       at java.util.stream.StreamSpliterators$WrappingSpliterator.lambda$initPartialTraversalState$0(StreamSpliterators.java:294)
       at java.util.stream.StreamSpliterators$AbstractWrappingSpliterator.fillBuffer(StreamSpliterators.java:206)
       at java.util.stream.StreamSpliterators$AbstractWrappingSpliterator.doAdvance(StreamSpliterators.java:169)
       at java.util.stream.StreamSpliterators$WrappingSpliterator.tryAdvance(StreamSpliterators.java:300)
       at java.util.Spliterators$1Adapter.hasNext(Spliterators.java:681)
       at com.atlassian.jira.plugins.importer.imports.importer.impl.DefaultJiraDataImporter.importIssues(DefaultJiraDataImporter.java:737)
       at com.atlassian.jira.plugins.importer.imports.importer.impl.DefaultJiraDataImporter.doImport(DefaultJiraDataImporter.java:382)
       at com.atlassian.jira.plugins.importer.trello.TrelloTaskRunner.runTask(TrelloTaskRunner.java:117)
       at com.atlassian.jira.task.progress.ProgressAwareMessageRunner.processMessage(ProgressAwareMessageRunner.java:87)
       at com.atlassian.messagequeue.internal.core.NestedMessageConsumer.consume(NestedMessageConsumer.java:135)
       at com.atlassian.messagequeue.internal.sqs.SQSMessageConsumer.processReceiveMessageResult(SQSMessageConsumer.java:171)
       at com.atlassian.messagequeue.internal.sqs.SQSMessageConsumer.run(SQSMessageConsumer.java:112)
       at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
       at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
       at java.lang.Thread.run(Thread.java:748) Caused by: com.google.gson.JsonSyntaxException: java.lang.IllegalStateException: Expected BEGIN_OBJECT but was NUMBER
       at line 1 column 4 path $
       at com.google.gson.internal.bind.ReflectiveTypeAdapterFactory$Adapter.read(ReflectiveTypeAdapterFactory.java:224)
       at com.google.gson.Gson.fromJson(Gson.java:888)
       at com.google.gson.Gson.fromJson(Gson.java:853)
       at com.google.gson.Gson.fromJson(Gson.java:802)
       at com.google.gson.Gson.fromJson(Gson.java:774)
       at com.atlassian.jira.plugins.importer.trello.fetch.TrelloParser.getUser(TrelloParser.java:76) ... 23 more Caused by: java.lang.IllegalStateException: Expected BEGIN_OBJECT but was NUMBER
       at line 1 column 4 path $
       at com.google.gson.stream.JsonReader.beginObject(JsonReader.java:385)
       at com.google.gson.internal.bind.ReflectiveTypeAdapterFactory$Adapter.read(ReflectiveTypeAdapterFactory.java:213) ... 28 more
      

       

      Workaround

      Use CSV export and import:

      Import Trello board to new JWM project. If you would like JSW project in Jira, you can move issues to Software project afterward. Please use the following guides:

            [JRACLOUD-81923] Trello import to JIRA fails due to Trello API Rate Limiting.

            Do the watchers of this ticket still experience this issue? A fix was released in April. Thank you!

            Anusha Rutnam added a comment - Do the watchers of this ticket still experience this issue? A fix was released in April. Thank you!

            Nick P added a comment -

            Hi jlong@atlassian.com! We've released an update to the import process that addresses this issue. Please try again and let us know if the problem persists.

            Nick P added a comment - Hi jlong@atlassian.com ! We've released an update to the import process that addresses this issue. Please try again and let us know if the problem persists.

            Atlassian Update - January 2024

            As I did not receive any responses to this comment I am closing this ticket.

            If you do not think this issue should have been closed, please add a comment here saying why and we can reopen it.

            Anusha Rutnam added a comment - Atlassian Update - January 2024 As I did not receive any responses to this comment I am closing this ticket. If you do not think this issue should have been closed, please add a comment here saying why and we can reopen it.

            Do the watchers of this ticket still experience this issue? I am not able to and we have not had any recent reports of it. Thank you!

            Anusha Rutnam added a comment - Do the watchers of this ticket still experience this issue? I am not able to and we have not had any recent reports of it. Thank you!

            Hello!

            We’re looking to improve the import experience in Jira and are keen to understand how our community is using the Jira Import Module (JIM). If you’ve used JIM to migrate/move data into Jira recently, we’d love to hear about your experience. Please take a few minutes to fill out this survey. Your feedback will help us learn how we can improve your experience in importing data.

            Survey link - https://forms.gle/NYNkmS92r96z42QV9

            Thanks!

            Prashanth M
            Product Manager, Jira Platform

            Prashanth M added a comment - Hello! We’re looking to improve the import experience in Jira and are keen to understand how our community is using the Jira Import Module (JIM). If you’ve used JIM to migrate/move data into Jira recently, we’d love to hear about your experience. Please take a few minutes to  fill out this survey . Your feedback will help us learn how we can improve your experience in importing data. Survey link -  https://forms.gle/NYNkmS92r96z42QV9 Thanks! Prashanth M Product Manager, Jira Platform

            Got the same issues with around 40 tickets. Repeating the import worked well.

            Joris Vleminckx added a comment - Got the same issues with around 40 tickets. Repeating the import worked well.

            I am also having this issue in cases with more than 60 cards, and have just had to batch my imports. Very inconvenient, especially since you can't import into a pre-existing project.

            Marijn Burger added a comment - I am also having this issue in cases with more than 60 cards, and have just had to batch my imports. Very inconvenient, especially since you can't import into a pre-existing project.

            I had this problem with a 60 cards board, after 2 cards I got the error.
            I tried it again (saving the import config and using it, not sure if it has any relation) and the second time it worked.

            Renato Chencinski added a comment - I had this problem with a 60 cards board, after 2 cards I got the error. I tried it again (saving the import config and using it, not sure if it has any relation) and the second time it worked.

            Belto added a comment -

            Users facing this problem can contact Atlassian Support for further assistance on how to import their Trello Boards that are to large and hitting the API limit.

            Belto added a comment - Users facing this problem can contact Atlassian Support for further assistance on how to import their Trello Boards that are to large and hitting the API limit.

            I created a tool for this while we wait for the Jira team to fix the issue:

            https://github.com/jerbob92/TrelloToJira

            Jeroen Bobbeldijk added a comment - I created a tool for this while we wait for the Jira team to fix the issue: https://github.com/jerbob92/TrelloToJira

              7a1812415629 Nick P
              jlong@atlassian.com Jared Long
              Affected customers:
              8 This affects my team
              Watchers:
              25 Start watching this issue

                Created:
                Updated:
                Resolved: