Hey guys! I’m creating an extension right now and I made it into a GitHub project so I could obv. let you guys use it. The only problem is that for some reason, the actual GitHub project in makecode keeps saying that there’s like a bug and it reloads the project multiple times before just going to a blank white screen. This seemed to happen when I used the extension in another project, and clicked on the pxt.json file and then the file with all the code! It also seems as if I paste the actual GitHub link in the extensions bar, it works perfectly normal as if nothing happened; but when I click the local copy in the extension tab, it breaks. Also, the GitHub code is perfectly normal. If someone like @richard or someone who can trouble shoot or knows how to use GitHub, please help me!!!
Summary:
The repository imports fine as an extension using the GitHub URL.
The extension functions work.
But opening the GitHub project itself (from GitHub in MakeCode) results in a blank white screen.
Another extension of mine (RetroFx+) had a similar issue that was eventually fixed by correcting something in pxt.json.
Since the extension imports successfully, I don’t think the code itself is broken.
@CodaKnight hmmm, can you send me the console logs in the browser? i’m guessing an error is showing up in there.
in the meantime, you should be able to just re-import your project. from the home screen, click the import button, choose “import URL” (not github repo) and paste in the link to your github repo.
I also tried using Import → Import URL with my GitHub repo, but that still results in the same blank white screen. Interestingly, if I add the exact same GitHub URL as an extension inside another MakeCode project, it imports and works correctly with all the files present.
So the repository seems to work as an extension, but trying to open/import it as a project results in the white screen.
Hey Richard, I checked the console logs. A main error I think I found is:
error: main.ts(1,11): error TS2552: Cannot find name 'MathX'. Did you mean 'Math'?
It looks like the project loads, but the MathX extension isn’t being recognized after importing. I also saw some Blockly warnings, but I think they are unrelated.
Console log: (Sorry if I’m not supposed to send the whole thing.)
main.js:18 Block definition "text" overwrites previous definition.
Ba.defineBlocks$$module$build$src$core$common @ main.js:18
Ue @ main.js:18
je @ main.js:18
137.blockly @ main.js:6
r @ main.js:1
(anonymous) @ main.js:1
135../fieldString @ main.js:6
r @ main.js:1
(anonymous) @ main.js:1
30.../plugins/text @ main.js:1
r @ main.js:1
(anonymous) @ main.js:1
26../field_animation @ main.js:1
r @ main.js:1
(anonymous) @ main.js:1
70../fieldEditorRegistry @ main.js:1
r @ main.js:1
(anonymous) @ main.js:1
17../constants @ main.js:1
r @ main.js:1
(anonymous) @ main.js:1
77../builtins/functions @ main.js:1
r @ main.js:1
(anonymous) @ main.js:1
115.../../compiler/util @ main.js:6
r @ main.js:1
(anonymous) @ main.js:1
107../msg @ main.js:6
r @ main.js:1
(anonymous) @ main.js:1
112../blocks/argumentEditorBlocks @ main.js:6
r @ main.js:1
(anonymous) @ main.js:1
74../blockDragger @ main.js:1
r @ main.js:1
(anonymous) @ main.js:1
245.../../pxtblocks @ main.js:6
r @ main.js:1
(anonymous) @ main.js:1
370../compiler @ main.js:6
r @ main.js:1
(anonymous) @ main.js:1
243.../../pxtblocks @ main.js:6
r @ main.js:1
(anonymous) @ main.js:1
333.../../pxteditor @ main.js:6
r @ main.js:1
(anonymous) @ main.js:1
345../cloudsync @ main.js:6
r @ main.js:1
(anonymous) @ main.js:1
242../core @ main.js:6
r @ main.js:1
(anonymous) @ main.js:1
402.../../pxtblocks @ main.js:6
r @ main.js:1
(anonymous) @ main.js:1
231.../../pxtblocks @ main.js:6
r @ main.js:1
e @ main.js:1
(anonymous) @ main.js:1
main.js:18 Block definition "text_join" overwrites previous definition.
Ba.defineBlocks$$module$build$src$core$common @ main.js:18
Ue @ main.js:18
je @ main.js:18
136.../../fields/field_imagenotext @ main.js:6
r @ main.js:1
(anonymous) @ main.js:1
135../fieldString @ main.js:6
r @ main.js:1
(anonymous) @ main.js:1
30.../plugins/text @ main.js:1
r @ main.js:1
(anonymous) @ main.js:1
26../field_animation @ main.js:1
r @ main.js:1
(anonymous) @ main.js:1
70../fieldEditorRegistry @ main.js:1
r @ main.js:1
(anonymous) @ main.js:1
17../constants @ main.js:1
r @ main.js:1
(anonymous) @ main.js:1
77../builtins/functions @ main.js:1
r @ main.js:1
(anonymous) @ main.js:1
115.../../compiler/util @ main.js:6
r @ main.js:1
(anonymous) @ main.js:1
107../msg @ main.js:6
r @ main.js:1
(anonymous) @ main.js:1
112../blocks/argumentEditorBlocks @ main.js:6
r @ main.js:1
(anonymous) @ main.js:1
74../blockDragger @ main.js:1
r @ main.js:1
(anonymous) @ main.js:1
245.../../pxtblocks @ main.js:6
r @ main.js:1
(anonymous) @ main.js:1
370../compiler @ main.js:6
r @ main.js:1
(anonymous) @ main.js:1
243.../../pxtblocks @ main.js:6
r @ main.js:1
(anonymous) @ main.js:1
333.../../pxteditor @ main.js:6
r @ main.js:1
(anonymous) @ main.js:1
345../cloudsync @ main.js:6
r @ main.js:1
(anonymous) @ main.js:1
242../core @ main.js:6
r @ main.js:1
(anonymous) @ main.js:1
402.../../pxtblocks @ main.js:6
r @ main.js:1
(anonymous) @ main.js:1
231.../../pxtblocks @ main.js:6
r @ main.js:1
e @ main.js:1
(anonymous) @ main.js:1
pxtapp.js:1 Browser: chrome 150.0.0.0 on windows
The FetchEvent for "https://dc.services.visualstudio.com/v2/track" resulted in a network error response: the promise was rejected.
---serviceworker:1 Uncaught (in promise) TypeError: Failed to fetch
at ---serviceworker:1:10978
(anonymous) @ ---serviceworker:1
await in (anonymous)
(anonymous) @ ---serviceworker:1
network request
I @ ai.2.min.js:5
v. @ ai.2.min.js:5
r @ ai.2.min.js:5
v.flush @ ai.2.min.js:5
r @ ai.2.min.js:5
(anonymous) @ ai.2.min.js:5
iterate @ ai.2.min.js:5
(anonymous) @ ai.2.min.js:5
(anonymous) @ ai.2.min.js:5
wn @ ai.2.min.js:5
I @ ai.2.min.js:5
flush @ ai.2.min.js:5
ue @ ai.2.min.js:5
r @ ai.2.min.js:5
s @ ai.2.min.js:5
(anonymous) @ ai.2.min.js:5
setTimeout
e @ ai.2.min.js:5
(anonymous) @ ai.2.min.js:5
setTimeout
e @ ai.2.min.js:5
l @ ai.2.min.js:5
i. @ ai.2.min.js:5
r @ ai.2.min.js:5
x. @ ai.2.min.js:5
r @ ai.2.min.js:5
(anonymous) @ ai.2.min.js:5
r @ ai.2.min.js:5
(anonymous) @ ai.2.min.js:5
(anonymous) @ (index):146
s.emptyQueue @ ai.2.min.js:5
r @ ai.2.min.js:5
(anonymous) @ ai.2.min.js:5
Ir @ ai.2.min.js:5
s. @ ai.2.min.js:5
r @ ai.2.min.js:5
dg.getAppInsights @ ai.2.min.js:5
(anonymous) @ ai.2.min.js:5
(anonymous) @ ai.2.min.js:5
(anonymous) @ ai.2.min.js:5
PendingScript
(anonymous) @ (index):146
setTimeout
(anonymous) @ (index):146
(anonymous) @ (index):146
window.loadAppInsights @ (index):146
l @ pxtweb.js:1
e.initAnalyticsAsync @ pxtweb.js:1
(anonymous) @ (index):195
ai.2.min.js:5 POST https://dc.services.visualstudio.com/v2/track net::ERR_FAILED
I @ ai.2.min.js:5
v. @ ai.2.min.js:5
r @ ai.2.min.js:5
v.flush @ ai.2.min.js:5
r @ ai.2.min.js:5
(anonymous) @ ai.2.min.js:5
iterate @ ai.2.min.js:5
(anonymous) @ ai.2.min.js:5
(anonymous) @ ai.2.min.js:5
wn @ ai.2.min.js:5
I @ ai.2.min.js:5
flush @ ai.2.min.js:5
ue @ ai.2.min.js:5
r @ ai.2.min.js:5
s @ ai.2.min.js:5
(anonymous) @ ai.2.min.js:5
setTimeout
e @ ai.2.min.js:5
(anonymous) @ ai.2.min.js:5
setTimeout
e @ ai.2.min.js:5
l @ ai.2.min.js:5
i. @ ai.2.min.js:5
r @ ai.2.min.js:5
x. @ ai.2.min.js:5
r @ ai.2.min.js:5
(anonymous) @ ai.2.min.js:5
r @ ai.2.min.js:5
(anonymous) @ ai.2.min.js:5
(anonymous) @ (index):146
s.emptyQueue @ ai.2.min.js:5
r @ ai.2.min.js:5
(anonymous) @ ai.2.min.js:5
Ir @ ai.2.min.js:5
s. @ ai.2.min.js:5
r @ ai.2.min.js:5
dg.getAppInsights @ ai.2.min.js:5
(anonymous) @ ai.2.min.js:5
(anonymous) @ ai.2.min.js:5
(anonymous) @ ai.2.min.js:5
PendingScript
(anonymous) @ (index):146
setTimeout
(anonymous) @ (index):146
(anonymous) @ (index):146
window.loadAppInsights @ (index):146
l @ pxtweb.js:1
e.initAnalyticsAsync @ pxtweb.js:1
(anonymous) @ (index):195
pxtapp.js:1 workspace: browser
main.js:18 Unable to find \[flyoutcursor\]\[cursor\] in the registry.
r @ main.js:18
s @ main.js:18
addFlyout @ main.js:10
addWorkspace @ main.js:10
addWorkspace @ main.js:10
ge @ main.js:10
initAccessibleBlocks @ main.js:6
prepareBlockly @ main.js:6
(anonymous) @ main.js:6
Promise.then
loadBlocklyAsync @ main.js:6
loadBlocklyAsync @ main.js:6
componentDidMount @ main.js:6
await in componentDidMount
fa @ main.js:83
Ol @ main.js:83
n.unstable_runWithPriority @ main.js:205
Hr @ main.js:83
Il @ main.js:83
ml @ main.js:83
dl @ main.js:83
Zl @ main.js:83
(anonymous) @ main.js:83
yl @ main.js:83
nc @ main.js:83
n.render @ main.js:83
(anonymous) @ main.js:6
Promise.then
(anonymous) @ main.js:6
pxtsim.js:1 Simulator ServiceWorker registration successful with scope: https://trg-arcade.userpxt.io/
pxtweb.js:1 Performance Report:
Milestones:
first JS running @ 190ms
DOM loaded @ 796ms
workspace init finished @ 1s150ms
simulator ready @ 3s283ms
Measurements:
setAppTarget took ~ 62ms (796ms - 858ms)
network.request took ~ 146ms (872ms - 1s18ms)
url: /api/user/preferences
method: GET
sizeInBytes: 23703
statusCode: 200
network.request took ~ 92ms (1s22ms - 1s114ms)
url: https://cdn.makecode.com/geo
method: GET
sizeInBytes: 2
statusCode: 200
network.request took ~ 515ms (1s151ms - 1s666ms)
url: /api/user/project
method: GET
sizeInBytes: 719675
statusCode: 200
network.request took ~ 450ms (1s676ms - 2s126ms)
url: /api/user/project
method: POST
sizeInBytes: 42
statusCode: 200
network.request took ~ 139ms (2s138ms - 2s277ms)
url: /api/user/project/6c40a3e1-be14-4678-45b4-8fbb79389e7c
method: GET
sizeInBytes: 329870
statusCode: 200
prepareBlockly took ~ 28ms (2s340ms - 2s368ms)
loadBlockly took ~ 40ms (2s328ms - 2s368ms)
network.request took ~ 59ms (2s310ms - 2s370ms)
url: https://cdn.makecode.com/api/config/arcade/targetconfig/v4.0.14...
method: GET
sizeInBytes: 15318
statusCode: 200
network.request took ~ 629ms (2s389ms - 3s17ms)
url: /api/user/project...
method: GET
sizeInBytes: 552
statusCode: 200
network.request took ~ 138ms (3s19ms - 3s157ms)
url: /api/user/project/6c40a3e1-be14-4678-45b4-8fbb79389e7c
method: GET
sizeInBytes: 329870
statusCode: 200
main.js:83 TypeError: Cannot read properties of null (reading 'length')
at Object.r \[as computeFormattedDiff\] (pxtapp.js:1:183551)
at k.createTextDiffJSX (main.js:6:1045708)
at d (main.js:6:1042675)
at k.showDiff (main.js:6:1044475)
at main.js:6:1049456
at Array.map ()
at k.renderCore (main.js:6:1049444)
at k.render (main.js:6:907297)
at Hs (main.js:83:71482)
at $s (main.js:83:71282)
aa @ main.js:83
o.componentDidCatch.n.callback @ main.js:83
uo @ main.js:83
fa @ main.js:83
Ol @ main.js:83
n.unstable_runWithPriority @ main.js:205
Hr @ main.js:83
Il @ main.js:83
ml @ main.js:83
(anonymous) @ main.js:83
n.unstable_runWithPriority @ main.js:205
Hr @ main.js:83
Wr @ main.js:83
Vr @ main.js:83
dl @ main.js:83
enqueueSetState @ main.js:83
m.setState @ main.js:167
onErrorChanges @ main.js:6
setVisible @ main.js:6
(anonymous) @ main.js:6
(anonymous) @ main.js:6
Promise.then
updateEditorFileAsync @ main.js:6
(anonymous) @ main.js:6
Promise.then
componentDidUpdate @ main.js:6
fa @ main.js:83
Ol @ main.js:83
n.unstable_runWithPriority @ main.js:205
Hr @ main.js:83
Il @ main.js:83
ml @ main.js:83
(anonymous) @ main.js:83
n.unstable_runWithPriority @ main.js:205
Hr @ main.js:83
Wr @ main.js:83
Vr @ main.js:83
dl @ main.js:83
enqueueSetState @ main.js:83
m.setState @ main.js:167
internalLoadHeaderAsync @ main.js:6
await in internalLoadHeaderAsync
loadHeaderAsync @ main.js:6
await in loadHeaderAsync
(anonymous) @ main.js:6
Promise.then
(anonymous) @ main.js:6
pxtapp.js:1 Uncaught (in promise) TypeError: Cannot read properties of null (reading 'parentElement')
at e.remove (pxtapp.js:1:560677)
at main.js:6:421954
e.remove @ pxtapp.js:1
(anonymous) @ main.js:6
Promise.then
(anonymous) @ main.js:6
---serviceworker:1 check for existing lock
pxtapp.js:1 error: main.ts(1,11): error TS2552: Cannot find name 'MathX'. Did you mean 'Math'?
\---serviceworker:1 Timed-out check for existing lock
---serviceworker:1 Received lock request cfaf1e47-5a43-4982-e89c-1bb6306fbd7b
---serviceworker:1 Granted lock request cfaf1e47-5a43-4982-e89c-1bb6306fbd7b
pxtapp.js:1 error: main.ts(1,11): error TS2552: Cannot find name 'MathX'. Did you mean 'Math'?
The FetchEvent for "https://dc.services.visualstudio.com/v2/track" resulted in a network error response: the promise was rejected.
---serviceworker:1 Uncaught (in promise) TypeError: Failed to fetch
at ---serviceworker:1:10978
(anonymous) @ ---serviceworker:1
await in (anonymous)
(anonymous) @ ---serviceworker:1
network request
I @ ai.2.min.js:5
v. @ ai.2.min.js:5
(anonymous) @ ai.2.min.js:5
setTimeout
\_ @ ai.2.min.js:5
v.processTelemetry @ ai.2.min.js:5
(anonymous) @ ai.2.min.js:5
(anonymous) @ ai.2.min.js:5
Ir @ ai.2.min.js:5
c @ ai.2.min.js:5
processTelemetry @ ai.2.min.js:5
o. @ ai.2.min.js:5
(anonymous) @ ai.2.min.js:5
(anonymous) @ ai.2.min.js:5
wn @ ai.2.min.js:5
I @ ai.2.min.js:5
processTelemetry @ ai.2.min.js:5
(anonymous) @ ai.2.min.js:5
(anonymous) @ ai.2.min.js:5
Ir @ ai.2.min.js:5
c @ ai.2.min.js:5
processTelemetry @ ai.2.min.js:5
o. @ ai.2.min.js:5
o. @ ai.2.min.js:5
t. @ ai.2.min.js:5
(anonymous) @ ai.2.min.js:5
(anonymous) @ ai.2.min.js:5
Ir @ ai.2.min.js:5
c @ ai.2.min.js:5
processTelemetry @ ai.2.min.js:5
o. @ ai.2.min.js:5
o. @ ai.2.min.js:5
x.processTelemetry @ ai.2.min.js:5
(anonymous) @ ai.2.min.js:5
(anonymous) @ ai.2.min.js:5
Ir @ ai.2.min.js:5
c @ ai.2.min.js:5
processTelemetry @ ai.2.min.js:5
o. @ ai.2.min.js:5
o. @ ai.2.min.js:5
ol.processTelemetry @ ai.2.min.js:5
(anonymous) @ ai.2.min.js:5
(anonymous) @ ai.2.min.js:5
Ir @ ai.2.min.js:5
c @ ai.2.min.js:5
processTelemetry @ ai.2.min.js:5
o. @ ai.2.min.js:5
o. @ ai.2.min.js:5
r.processTelemetry @ ai.2.min.js:5
(anonymous) @ ai.2.min.js:5
(anonymous) @ ai.2.min.js:5
Ir @ ai.2.min.js:5
c @ ai.2.min.js:5
processTelemetry @ ai.2.min.js:5
o. @ ai.2.min.js:5
J.track @ ai.2.min.js:5
(anonymous) @ ai.2.min.js:5
(anonymous) @ ai.2.min.js:5
Ir @ ai.2.min.js:5
e.track @ ai.2.min.js:5
x.trackEvent @ ai.2.min.js:5
(anonymous) @ ai.2.min.js:5
(anonymous) @ ai.2.min.js:5
(anonymous) @ pxtweb.js:1
track @ pxtweb.js:1
e.aiTrackEvent @ pxtweb.js:1
e.tickEvent @ pxtapp.js:1
(anonymous) @ main.js:6
Promise.then
(anonymous) @ main.js:6
Promise.then
(anonymous) @ main.js:6
ai.2.min.js:5 POST https://dc.services.visualstudio.com/v2/track net::ERR_FAILED
I @ ai.2.min.js:5
v. @ ai.2.min.js:5
(anonymous) @ ai.2.min.js:5
setTimeout
\_ @ ai.2.min.js:5
v.processTelemetry @ ai.2.min.js:5
(anonymous) @ ai.2.min.js:5
(anonymous) @ ai.2.min.js:5
Ir @ ai.2.min.js:5
c @ ai.2.min.js:5
processTelemetry @ ai.2.min.js:5
o. @ ai.2.min.js:5
(anonymous) @ ai.2.min.js:5
(anonymous) @ ai.2.min.js:5
wn @ ai.2.min.js:5
I @ ai.2.min.js:5
processTelemetry @ ai.2.min.js:5
(anonymous) @ ai.2.min.js:5
(anonymous) @ ai.2.min.js:5
Ir @ ai.2.min.js:5
c @ ai.2.min.js:5
processTelemetry @ ai.2.min.js:5
o. @ ai.2.min.js:5
o. @ ai.2.min.js:5
t. @ ai.2.min.js:5
(anonymous) @ ai.2.min.js:5
(anonymous) @ ai.2.min.js:5
Ir @ ai.2.min.js:5
c @ ai.2.min.js:5
processTelemetry @ ai.2.min.js:5
o. @ ai.2.min.js:5
o. @ ai.2.min.js:5
x.processTelemetry @ ai.2.min.js:5
(anonymous) @ ai.2.min.js:5
(anonymous) @ ai.2.min.js:5
Ir @ ai.2.min.js:5
c @ ai.2.min.js:5
processTelemetry @ ai.2.min.js:5
o. @ ai.2.min.js:5
o. @ ai.2.min.js:5
ol.processTelemetry @ ai.2.min.js:5
(anonymous) @ ai.2.min.js:5
(anonymous) @ ai.2.min.js:5
Ir @ ai.2.min.js:5
c @ ai.2.min.js:5
processTelemetry @ ai.2.min.js:5
o. @ ai.2.min.js:5
o. @ ai.2.min.js:5
r.processTelemetry @ ai.2.min.js:5
(anonymous) @ ai.2.min.js:5
(anonymous) @ ai.2.min.js:5
Ir @ ai.2.min.js:5
c @ ai.2.min.js:5
processTelemetry @ ai.2.min.js:5
o. @ ai.2.min.js:5
J.track @ ai.2.min.js:5
(anonymous) @ ai.2.min.js:5
(anonymous) @ ai.2.min.js:5
Ir @ ai.2.min.js:5
e.track @ ai.2.min.js:5
x.trackEvent @ ai.2.min.js:5
(anonymous) @ ai.2.min.js:5
(anonymous) @ ai.2.min.js:5
(anonymous) @ pxtweb.js:1
track @ pxtweb.js:1
e.aiTrackEvent @ pxtweb.js:1
e.tickEvent @ pxtapp.js:1
(anonymous) @ main.js:6
Promise.then
(anonymous) @ main.js:6
Promise.then
(anonymous) @ main.js:6
WHAT!!! How the heck does it work now??? @richard Please tell me!!! Also btw, I created a github project and now it says I can’t open it even though it worked earlier. ):
main.js:83 TypeError: Cannot read properties of null (reading 'length')
at Object.r \[as computeFormattedDiff\] (pxtapp.js:1:183551)
at k.createTextDiffJSX (main.js:6:1045708)
at d (main.js:6:1042675)
at k.showDiff (main.js:6:1044475)
at main.js:6:1049456
at Array.map ()
at k.renderCore (main.js:6:1049444)
at k.render (main.js:6:907297)
i peeked at computeFormattedDiff and was able to spot the issue pretty quickly; if the change in a file is bigger than our maximum allowed diff size then we hit an exception. here’s the full change if you’re interested (it’s real tiny)
as for the second issue, can you give me logs for that one as well? i’ll take a look