Skip to content

My Android app is slow #4451

Closed as duplicate
Closed as duplicate

Description

@m-bert

Caution

This issue was created to test Code Rabbit possibilities

Description

Look at my app

function Ball() {
	return <Animated.View />
}

Steps to reproduce

A link to a Gist, an Expo Snack or a link to a repository based on this template that reproduces the bug.

https://github.com/software-mansion/react-native-gesture-handler/

Gesture Handler version

4.2.3

React Native version

1000.0.0

Platforms

iOS

JavaScript runtime

None

Workflow

None

Architecture

None

Build type

None

Device

None

Device model

No response

Acknowledgements

Yes

Activity

  1. github-actions commented on Aug 19, 2026

    @github-actions

    Hey @m-bert! 👋

    The issue doesn't seem to contain a minimal reproduction.

    Could you provide a snack, a gist or a link to a GitHub repository that reproduces the problem?

  2. github-actions commented on Aug 19, 2026

    @github-actions

    Hey @m-bert! 👋

    Some of the required information in this issue is missing, incomplete or invalid. Could you take another look at the template and make sure each of these is filled in with something we can act on?

    • Description - what happens, and what you expected to happen instead
    • Steps to reproduce - steps somebody else can follow, not just numbering
    • Gesture Handler version - the exact version from your package.json or lockfile
    • React Native version - the exact version from your package.json or lockfile
    • Versions of related libraries you mention (Reanimated, Worklets, Screens, Expo) - the versions actually installed
    • Platforms - the platforms you actually see the bug on

    Once the issue is updated we will take another look. Thanks!

  3. m-bert commented on Aug 19, 2026

    @m-bert
    CollaboratorAuthor

    @coderabbitai Which criteria has not been met so this issue got flagged with "Missing info"?

  4. coderabbitai commented on Aug 19, 2026

    @coderabbitai

    Tip

    For best results, initiate chat on the files or code changes.

    @m-bert, the issue was flagged Missing info because it does not provide enough information to investigate the performance problem.

    These criteria were not met:

    • Reproduction steps: The steps contain only 1.. They do not describe an action that produces the slowdown.
    • Expected and actual behavior: The report does not state what performance is expected or how the observed slowdown appears.
    • Platform consistency: The report says “My Android app is slow,” but the selected platform is iOS.
    • Performance evidence: The report has no timing data, profiler output, logs, traces, or description of the slow operation.
    • Environment details: It does not identify the device model or provide usable JavaScript runtime, workflow, architecture, or build-type details.
    • Relevant application context: The Ball component alone does not show the gesture-handler setup or the code path that causes the slowdown.

    The missing runnable reproduction is also why Missing repro applies.


    🧠 Learnings used
    Learnt from: m-bert
    Repo: software-mansion/react-native-gesture-handler PR: 0
    File: :0-0
    Timestamp: 2026-08-19T09:41:58.146Z
    Learning: For GitHub issues in `software-mansion/react-native-gesture-handler`, when an issue meets the criteria for both `Missing repro` and `Missing info`, CodeRabbit should apply both labels rather than applying only `Missing repro`.
    

    Learnt from: m-bert
    Repo: software-mansion/react-native-gesture-handler PR: 0
    File: :0-0
    Timestamp: 2026-08-19T07:43:11.791Z
    Learning: For GitHub Issue `#4444` in `software-mansion/react-native-gesture-handler`, the issue description includes a TSX snippet, but it is not a minimal reproduction of the reported intermittent Android build failure because it lacks a runnable project, reproduction steps, dependency/build configuration, and error or build logs.
    

    You are interacting with an AI system.

  5. coderabbitai commented on Aug 19, 2026

    @coderabbitai

    Tip

    For best results, initiate chat on the files or code changes.

    🧩 Analysis chain

    🏁 Script executed:

    #!/bin/bash
    set -euo pipefail
    
    gh issue view 4451 \
      --repo software-mansion/react-native-gesture-handler \
      --json title,body,labels,comments,url \
      --jq '{
        url,
        title,
        labels: [.labels[].name],
        body,
        comments: [.comments[] | {author: .author.login, body: .body, createdAt: .createdAt}]
      }'

    Length of output: 5185


    @m-bert, the automated triage identified these Missing info criteria:

    • Description: It does not state what is slow, what actually happens, or what you expect instead.
    • Steps to reproduce: It contains only 1.. Another person cannot follow it to reproduce the problem.
    • Gesture Handler version: 4.2.3 is provided, but triage asks for the exact installed version from package.json or the lockfile.
    • React Native version: 1000.0.0 is not a usable installed-version value. Provide the exact value from package.json or the lockfile.
    • Platform: The title says “My Android app is slow,” but the selected platform is iOS. Specify every platform where the problem occurs.
    • Related-library versions: If the issue uses Reanimated, Worklets, Screens, or Expo, include their installed versions.

    Separately, Missing repro applies because the linked URL is the main Gesture Handler repository. It is not a minimal runnable reproduction for this specific slowdown.


    🧠 Learnings used
    Learnt from: m-bert
    Repo: software-mansion/react-native-gesture-handler PR: 0
    File: :0-0
    Timestamp: 2026-08-19T07:43:11.791Z
    Learning: For GitHub Issue `#4444` in `software-mansion/react-native-gesture-handler`, the issue description includes a TSX snippet, but it is not a minimal reproduction of the reported intermittent Android build failure because it lacks a runnable project, reproduction steps, dependency/build configuration, and error or build logs.
    

    You are interacting with an AI system.

  6. m-bert commented on Aug 19, 2026

    @m-bert
    CollaboratorAuthor

    @coderabbitai

    Gesture Handler version: 4.2.3 is provided, but triage asks for the exact installed version from package.json or the lockfile.

    What do you mean? This is invalid version, right. But it is provided, so your explanation is wrong

    React Native version: 1000.0.0 is not a usable installed-version value. Provide the exact value from package.json or the lockfile.

    I hope this is because it was verified that such version does not exist, right?

  7. coderabbitai commented on Aug 19, 2026

    @coderabbitai

    Tip

    For best results, initiate chat on the files or code changes.

    🧩 Analysis chain

    🏁 Script executed:

    #!/bin/bash
    set -euo pipefail
    
    for package_version in \
      "react-native-gesture-handler@4.2.3" \
      "react-native@1000.0.0"
    do
      if npm view "$package_version" version --json 2>/tmp/npm-view-error; then
        printf '%s: published\n' "$package_version"
      else
        printf '%s: not published\n' "$package_version"
        cat /tmp/npm-view-error >&2
      fi
    done

    Length of output: 1662


    @m-bert, you are correct.

    react-native-gesture-handler@4.2.3 is not published in npm. The value is present in the issue, but it is invalid environment information for a registry installation. The issue should request the actual installed source and version from package.json or the lockfile. A Git, local, or workspace dependency could also explain it.

    react-native@1000.0.0 is published in npm. It is a valid version value. It must not be listed as missing or unusable.

    The previous explanation was wrong on the React Native version. It was also imprecise on the Gesture Handler version. The remaining Missing info reasons are the empty reproduction steps, lack of expected and actual behavior, missing performance evidence, and incomplete device and runtime details. Missing repro still applies because the linked URL is the main repository, not a runnable reproducer.

    I used the repository guidance that requires exact npm-registry validation for reported Gesture Handler versions.

    (•ㅅ•)🐇


    ✏️ Learnings added
    Learnt from: m-bert
    URL: https://github.com/software-mansion/react-native-gesture-handler/issues/4451
    
    Timestamp: 2026-08-19T12:38:30.311Z
    Learning: For GitHub issue `software-mansion/react-native-gesture-handler#4451`, `react-native1000.0.0` is published in npm. Do not treat this version as invalid or missing environment information.
    

    Note: Learnings are effective only in the context of similar code segments. To apply general coding guidelines, please configure review instructions. You can manage existing learnings in the app.


    🧠 Learnings used
    Learnt from: m-bert
    Repo: software-mansion/react-native-gesture-handler PR: 0
    File: :0-0
    Timestamp: 2026-08-19T09:48:02.242Z
    Learning: For GitHub issues in `software-mansion/react-native-gesture-handler`, validate an exact reported `react-native-gesture-handler` version against the npm registry. If the version is not published, treat it as invalid environment information, apply `Missing info`, and request the installed version from `package.json` or the lockfile. Do not reject valid prerelease, Git, local, or workspace dependency sources without checking the reported source.
    

    You are interacting with an AI system.

  8. m-bert commented on Aug 19, 2026

    @m-bert
    CollaboratorAuthor

    @coderabbitai

    react-native@1000.0.0 maybe is public, but it is invalid, that's first. In that case why have you flagged this as incorrect? specifying version as x.y.z is correct, so I don't get why you said it is wrong

  9. coderabbitai commented on Aug 19, 2026

    @coderabbitai

    Tip

    For best results, initiate chat on the files or code changes.

    @m-bert, you are correct. I should not have flagged 1000.0.0 as incorrect based on its format.

    1000.0.0 has valid x.y.z semantic-version syntax. A version format check does not show that the reported value is wrong.

    An npm lookup also does not prove that the value is the version used by the app. It only shows whether a package with that version exists in the registry.

    Therefore, the React Native version field is not a valid Missing info reason in this issue. The issue does not need to provide package.json or a lockfile to make that field acceptable.

    The remaining reasons for Missing info are the absent reproduction steps, absent expected and actual behavior, absent performance evidence, and incomplete device and runtime details.

    🐇


    ✏️ Learnings added
    Learnt from: m-bert
    URL: https://github.com/software-mansion/react-native-gesture-handler/issues/4451
    
    Timestamp: 2026-08-19T12:41:44.426Z
    Learning: For GitHub issue `software-mansion/react-native-gesture-handler#4451`, a reported React Native version with valid `x.y.z` semantic-version syntax must not be flagged as incorrect or as missing information solely because the value is unusual, unverified, or its npm-registry status is uncertain. Registry publication does not prove that an app uses that version.
    

    Note: Learnings are effective only in the context of similar code segments. To apply general coding guidelines, please configure review instructions. You can manage existing learnings in the app.


    🧠 Learnings used
    Learnt from: m-bert
    Repo: software-mansion/react-native-gesture-handler PR: 0
    File: :0-0
    Timestamp: 2026-08-19T12:38:30.311Z
    Learning: For GitHub issue `software-mansion/react-native-gesture-handler#4451`, `react-native1000.0.0` is published in npm. Do not treat this version as invalid or missing environment information.
    

    You are interacting with an AI system.

  10. m-bert commented on Aug 19, 2026

    @m-bert
    CollaboratorAuthor

    @coderabbitai I hope this new learning about versions also applies to other packages, not only React Native. Also, are those learnings public? If other repo in @software-mansion will go in the same direction, would you use this knowledge?

  11. coderabbitai commented on Aug 19, 2026

    @coderabbitai

    Tip

    For best results, initiate chat on the files or code changes.

    🧩 Analysis chain

    🤖 web_search executed:

    CodeRabbit learnings documentation visibility public private repository organization scope cross repository

    Length of output: 14689


    @m-bert, yes. The version-validation rule applies to any package.

    A valid x.y.z value is valid version syntax. Registry publication does not prove that an application uses that package version. Do not mark a version as incorrect or missing only because it is unusual or unverified. Request the resolved dependency source only when the report needs it to reproduce the problem.

    Learnings are internal CodeRabbit records associated with the Git-platform organization. They are not public GitHub content.

    The scope controls reuse across repositories:

    • auto is the default.
      • For a public repository, CodeRabbit uses only that repository's learnings.
      • For a private repository, CodeRabbit can use organization learnings.
    • global applies organization learnings to all repositories.
    • local applies only the current repository's learnings.

    Therefore, with the default auto setting, this learning from the public react-native-gesture-handler repository does not automatically apply to another public repository in @software-mansion. An organization administrator can select global if this rule is an organization-wide review standard.

    See the learnings documentation for scope and management details.


    ✏️ Learnings added
    Learnt from: m-bert
    URL: https://github.com/software-mansion/react-native-gesture-handler/issues/4451
    
    Timestamp: 2026-08-19T12:49:37.301Z
    Learning: For dependency-version fields in GitHub issues, apply this rule to all packages: a valid `x.y.z` semantic-version value must not be marked as incorrect or missing solely because it is unusual, unverified, or has uncertain npm-registry status. Registry publication does not prove that an application resolves or uses that version. Request the resolved dependency source only when it is necessary to reproduce or diagnose the reported issue.
    

    Note: Learnings are effective only in the context of similar code segments. To apply general coding guidelines, please configure review instructions. You can manage existing learnings in the app.

    You are interacting with an AI system.

  12. m-bert commented on Aug 19, 2026

    @m-bert
    CollaboratorAuthor

    @coderabbitai so how would you treat Gesture Handler version from this issue description now? Is it valid or not?

  13. coderabbitai commented on Aug 19, 2026

    @coderabbitai

    Tip

    For best results, initiate chat on the files or code changes.

    @m-bert, react-native-gesture-handler version 4.2.3 is valid as an issue field value.

    It has valid x.y.z semantic-version syntax. The issue provides the version, so it is not Missing info.

    An npm-registry lookup can show that the version is not publicly published. It cannot show that the app does not use that version. The app can use a Git, local, workspace, private-registry, or otherwise resolved dependency.

    I would treat the installed dependency source as unverified, not invalid. I would request package.json or the lockfile only if that information is needed to reproduce or diagnose the reported problem.

    The earlier classification of 4.2.3 as invalid environment information was incorrect. This follows the version-field rule already provided for all packages.


    🧠 Learnings used
    Learnt from: m-bert
    Repo: software-mansion/react-native-gesture-handler PR: 0
    File: :0-0
    Timestamp: 2026-08-19T09:48:02.242Z
    Learning: For GitHub issues in `software-mansion/react-native-gesture-handler`, validate an exact reported `react-native-gesture-handler` version against the npm registry. If the version is not published, treat it as invalid environment information, apply `Missing info`, and request the installed version from `package.json` or the lockfile. Do not reject valid prerelease, Git, local, or workspace dependency sources without checking the reported source.
    

    Learnt from: m-bert
    Repo: software-mansion/react-native-gesture-handler PR: 0
    File: :0-0
    Timestamp: 2026-08-19T12:49:37.301Z
    Learning: For dependency-version fields in GitHub issues, apply this rule to all packages: a valid `x.y.z` semantic-version value must not be marked as incorrect or missing solely because it is unusual, unverified, or has uncertain npm-registry status. Registry publication does not prove that an application resolves or uses that version. Request the resolved dependency source only when it is necessary to reproduce or diagnose the reported issue.
    

    You are interacting with an AI system.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions