Syntax Error only on Actions?

Describe the bug
I've been testing very thoroughly some code that only has a Syntax Error on an actions/github-script@v7 run.

To Reproduce
The following script fails:

Full file
name: Clippy changelog check

on:
  merge_group:
  pull_request:
    types: [opened, reopened, synchronize, edited]

concurrency:
  # For a given workflow, if we push to the same PR, cancel all previous builds on that PR.
  # If the push is not attached to a PR, we will cancel all builds on the same branch.
  group: "${{ github.workflow }}-${{ github.event.pull_request.number || github.ref }}"
  cancel-in-progress: true

jobs:

  changelog:
    runs-on: ubuntu-latest

    defaults:
      run:
        shell: bash

    steps:
    # Run
    - name: Check Changelog
      if: ${{ github.event_name == 'pull_request' }}
      run: |
        body=$(curl -H "Authorization: token ${{ secrets.GITHUB_TOKEN }}" -s "https://api.github.com/repos/blyxyas/rust-clippy/pulls/$PR_NUMBER" | \
          python -c "import sys, json; print(json.load(sys.stdin)['body'])")
        output=$(awk '/^changelog:\s*\S/ && !/changelog: \[.*\]: your change/' <<< "$body" | sed "s/changelog:\s*//g")
        if [ -z "$output" ]; then
          echo "ERROR: pull request message must contain 'changelog: ...' with your changelog. Please add it."
          exit 1
        else
          echo "changelog: $output"
          if [[ "${output}" == \[\`* ]]; then
            echo "LINT_CHANGELOG=\"${output}\"" >> $GITHUB_ENV
          else
            echo "LINT_CHANGELOG=\"meowmeow\"" >> $GITHUB_ENV
          fi
        fi
      env:
        PYTHONIOENCODING: 'utf-8'
        PR_NUMBER: '${{ github.event.number }}'
    - name: New Lint Label
      uses: actions/github-script@v7
      with:
          script: |
            let res = await github.rest.issues.listLabelsOnIssue({
              owner: 'blyxyas',
              repo: 'rust-clippy',
              issue_number: ${{ github.event.number }}
            })
            let names = res.data.map((element) => element.name);

            // We've already visited this PR
            if (!names.includes('A-new-lint')) {
            // Check if we're with a new lint (there are 0 mentions of this lint on the codebase
            if (${{ env.LINT_CHANGELOG }} != "") {
              const lint_name = /\[`(.*)`\]/g.exec(${{ env.LINT_CHANGELOG }}).slice(1);
              let lint_name_upper = lint_name.toString().toUpperCase();
              let res = await octokit.rest.search.code({
                q: `${lint_name_upper} repo:rust-lang/rust-clippy`,
                per_page: 1,
                });
                
                if (res.data.items.length == 0) {
                  await octokit.rest.issues.createComment({
                    owner: "blyxyas",
                    repo: "rust-clippy",
                    issue_number: ${{ github.event.number }},
                    body: "Seems that you are trying to add a new lint! We are currently in a feature freeze, I'll add it to a milestone."
                  });
                }
              }
            }
                    

  # We need to have the "conclusion" job also on PR CI, to make it possible
  # to add PRs to a merge queue.
  conclusion_changelog:
    needs: [ changelog ]
    # We need to ensure this job does *not* get skipped if its dependencies fail,
    # because a skipped job is considered a success by GitHub. So we have to
    # overwrite `if:`. We use `!cancelled()` to ensure the job does still not get run
    # when the workflow is canceled manually.
    #
    # ALL THE PREVIOUS JOBS NEED TO BE ADDED TO THE `needs` SECTION OF THIS JOB!
    if: ${{ !cancelled() }}
    runs-on: ubuntu-latest
    steps:
      # Manually check the status of all dependencies. `if: failure()` does not work.
      - name: Conclusion
        run: |
          # Print the dependent jobs to see them in the CI log
          jq -C <<< '${{ toJson(needs) }}'
          # Check if all jobs that we depend on (in the needs array) were successful.
          jq --exit-status 'all(.result == "success")' <<< '${{ toJson(needs) }}'
            let res = await github.rest.issues.listLabelsOnIssue({
              owner: 'blyxyas',
              repo: 'rust-clippy',
              issue_number: ${{ github.event.number }}
            })
            let names = res.data.map((element) => element.name);

            // We've already visited this PR
            if (!names.includes('A-new-lint')) {
            // Check if we're with a new lint (there are 0 mentions of this lint on the codebase
            if (${{ env.LINT_CHANGELOG }} != "") {
              const lint_name = /\[`(.*)`\]/g.exec(${{ env.LINT_CHANGELOG }}).slice(1);
              let lint_name_upper = lint_name.toString().toUpperCase();
              let res = await octokit.rest.search.code({
                q: `${lint_name_upper} repo:rust-lang/rust-clippy`,
                per_page: 1,
                });
                
                if (res.data.items.length == 0) {
                  await octokit.rest.issues.createComment({
                    owner: "blyxyas",
                    repo: "rust-clippy",
                    issue_number: ${{ github.event.number }},
                    body: "Seems that you are trying to add a new lint! We are currently in a feature freeze, I'll add it to a milestone."
                  });
                }
              }
            }

Expected behavior
It actually running and posting the comment as desired, it runs correctly on my local PC's Node

Desktop (please complete the following information):

  • OS: ubuntu-latest
  • Version: Node 20, action/github-script@v7

Example

https://github.com/blyxyas/rust-clippy/actions/runs/14022377377/job/39255988671?pr=6