jasperapp/jasper

1.1.1 crashes in Windows

yuri-tceretian opened this issue · 3 comments

The application was upgraded from 1.0.7. When it started, it asked to re-authenticate using the OAuth. After authentication, the app crashed. All subsequent runs crashed the app almost immediately.
I wiped out the data folder and started from scratch. After the same procedure, it crashed as well. The same problem occurs in 1.1.0.

In the event logs, I found some entry that mentions the crash

Faulting application name: jasper.exe, version: 1.1.1.0, time stamp: 0x62583230
Faulting module name: jasper.exe, version: 1.1.1.0, time stamp: 0x62583230
Exception code: 0x80000003
Fault offset: 0x0000000001957947
Faulting process id: 0x8778
Faulting application start time: 0x01d8b23edf44b402
Faulting application path: %USER%\AppData\Local\jasper\app-1.1.1\jasper.exe
Faulting module path:  %USER%\AppData\Local\jasper\app-1.1.1\jasper.exe
Report Id: bce2431a-bd69-4298-bd3b-afeeb00f0c91
Faulting package full name: 
Faulting package-relative application ID: 

OS Info:
Edition Windows 11 Pro
Version 21H2
Installed on ‎10/‎29/‎2021
OS build 22000.856
Experience Windows Feature Experience Pack 1000.22000.856.0

It is worth mentioning that I have antivirus Bitdefender Endpoint Security installed. I would blame it but 1.0.7 works just fine.

Quick update. I deleted the antivirus but 1.1.x still crashes

I ran it in a Windows Sandbox with the same token I use for 1.0.7 and this time it did not crash but it still does not load issues. I opened dev console and found some interesting things:

  1. The request to graphql does not seem to like when response contains errors
    in my case the responses (2 of 5 sent concurrently) look like
Response
{
    "data": {
        "nodes": [
            ... some data ...
        ],
        "rateLimit": {
            "limit": 5000,
            "cost": 3,
            "remaining": 4948,
            "resetAt": "2023-02-02T23:45:51Z"
        }
    },
    "errors": [
        {
            "type": "NOT_FOUND",
            "message": "NOT_FOUND"
        },
        {
            "type": "NOT_FOUND",
            "message": "NOT_FOUND"
        },
        {
            "type": "NOT_FOUND",
            "message": "NOT_FOUND"
        },
        {
            "type": "NOT_FOUND",
            "message": "NOT_FOUND"
        },
        {
            "type": "NOT_FOUND",
            "message": "NOT_FOUND"
        },
        {
            "type": "NOT_FOUND",
            "message": "NOT_FOUND"
        },
        {
            "type": "NOT_FOUND",
            "message": "NOT_FOUND"
        },
        {
            "type": "NOT_FOUND",
            "message": "NOT_FOUND"
        },
        {
            "type": "NOT_FOUND",
            "message": "NOT_FOUND"
        },
        {
            "type": "NOT_FOUND",
            "message": "NOT_FOUND"
        },
        {
            "type": "NOT_FOUND",
            "message": "NOT_FOUND"
        },
        {
            "type": "NOT_FOUND",
            "message": "NOT_FOUND"
        },
        {
            "type": "NOT_FOUND",
            "message": "NOT_FOUND"
        },
        {
            "type": "NOT_FOUND",
            "message": "NOT_FOUND"
        },
        {
            "type": "NOT_FOUND",
            "message": "NOT_FOUND"
        },
        {
            "type": "NOT_FOUND",
            "message": "NOT_FOUND"
        },
        {
            "type": "NOT_FOUND",
            "message": "NOT_FOUND"
        },
        {
            "type": "NOT_FOUND",
            "message": "NOT_FOUND"
        },
        {
            "type": "NOT_FOUND",
            "message": "NOT_FOUND"
        },
        {
            "type": "NOT_FOUND",
            "message": "NOT_FOUND"
        },
        {
            "type": "NOT_FOUND",
            "message": "NOT_FOUND"
        },
        {
            "type": "NOT_FOUND",
            "message": "NOT_FOUND"
        },
        {
            "type": "NOT_FOUND",
            "message": "NOT_FOUND"
        },
        {
            "type": "NOT_FOUND",
            "message": "NOT_FOUND"
        },
        {
            "type": "NOT_FOUND",
            "message": "NOT_FOUND"
        },
        {
            "type": "NOT_FOUND",
            "message": "NOT_FOUND"
        },
        {
            "type": "NOT_FOUND",
            "message": "NOT_FOUND"
        },
        {
            "type": "NOT_FOUND",
            "message": "NOT_FOUND"
        },
        {
            "type": "NOT_FOUND",
            "message": "NOT_FOUND"
        },
        {
            "type": "NOT_FOUND",
            "message": "NOT_FOUND"
        },
        {
            "type": "NOT_FOUND",
            "message": "NOT_FOUND"
        },
        {
            "type": "NOT_FOUND",
            "message": "NOT_FOUND"
        },
        {
            "type": "NOT_FOUND",
            "message": "NOT_FOUND"
        },
        {
            "type": "NOT_FOUND",
            "message": "NOT_FOUND"
        },
        {
            "type": "NOT_FOUND",
            "message": "NOT_FOUND"
        },
        {
            "type": "NOT_FOUND",
            "message": "NOT_FOUND"
        }
    ]
}
  1. An error that follows the first error
Stack trace
VM182 C:\Users\WDAGUtilityAccount\AppData\Local\jasper\app-1.1.2\resources\app.asar\src\Renderer\Library\GitHub\V4\GitHubV4IssueClient.js:327 Uncaught (in promise) TypeError: Cannot read properties of null (reading 'bodyHTML')
    at VM182 C:\Users\WDAGUtilityAccount\AppData\Local\jasper\app-1.1.2\resources\app.asar\src\Renderer\Library\GitHub\V4\GitHubV4IssueClient.js:327:74
    at Array.map (<anonymous>)
    at GitHubV4IssueClient.getMentions (VM182 C:\Users\WDAGUtilityAccount\AppData\Local\jasper\app-1.1.2\resources\app.asar\src\Renderer\Library\GitHub\V4\GitHubV4IssueClient.js:327:57)
    at GitHubV4IssueClient.getIssuesByNodeIdsInternal (VM182 C:\Users\WDAGUtilityAccount\AppData\Local\jasper\app-1.1.2\resources\app.asar\src\Renderer\Library\GitHub\V4\GitHubV4IssueClient.js:271:39)
    at async Promise.all (index 2)
    at async GitHubV4IssueClient.getIssuesByNodeIds (VM182 C:\Users\WDAGUtilityAccount\AppData\Local\jasper\app-1.1.2\resources\app.asar\src\Renderer\Library\GitHub\V4\GitHubV4IssueClient.js:228:25)
    at async StreamClient.injectV4Properties (VM195 C:\Users\WDAGUtilityAccount\AppData\Local\jasper\app-1.1.2\resources\app.asar\src\Renderer\Repository\Polling\StreamClient\StreamClient.js:199:45)
    at async StreamClient.search (VM195 C:\Users\WDAGUtilityAccount\AppData\Local\jasper\app-1.1.2\resources\app.asar\src\Renderer\Repository\Polling\StreamClient\StreamClient.js:138:31)
    at async StreamClient.exec (VM195 C:\Users\WDAGUtilityAccount\AppData\Local\jasper\app-1.1.2\resources\app.asar\src\Renderer\Repository\Polling\StreamClient\StreamClient.js:74:52)
    at async _StreamPolling.run (VM194 C:\Users\WDAGUtilityAccount\AppData\Local\jasper\app-1.1.2\resources\app.asar\src\Renderer\Repository\Polling\StreamPolling.js:118:42)

I think this is the catch.

cc @h13i32maru. Do you need more info to fix this?
What do you think about ignoring NOT_FOUND errors in the response?

Ok, I finally managed to run this project in debugging on host where it was crashing. Upgrade to the electron 18.3.15 helped.

After I added filter by node != null

const bodyHTMLs = issue.timelineItems.nodes.map(node => node.bodyHTML).filter(bodyHTML => bodyHTML);

and
const timelineItems = [...issue.timelineItems.nodes];

the problem was resolved.