Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Sections missing from settings page #17278

Closed
johnkennedy9147 opened this issue May 30, 2018 · 43 comments
Closed

Sections missing from settings page #17278

johnkennedy9147 opened this issue May 30, 2018 · 43 comments
Assignees

Comments

@johnkennedy9147
Copy link
Contributor

Describe your problem and - if possible - how to reproduce it

Sections missing on settings page:
all the claim certificate sections disappeared an hour or so ago - they were there initially when I started exploring the new features
There might also have been more under the "Danger Zone" but I'm not sure.

Possibly related - claim Responsive certificate wasn't working for me - said I hadn't completed all the challenges needed but I had submitted all required projects (codepen) which are passing all tests.

Last thing I think I did before returning to settings page was submitted solutions for all the JavaScript challenges.

I see entries like react-empty: 364, react-empty: 381 and react-empty: 382 where there seems to be missing content.

Add a Link to the page with the problem

https://www.freecodecamp.org/settings

Tell us about your browser and operating system

  • Browser Name: Firefox 60.0.1 and Chrome 66.0.3359.181
  • Browser Version:
  • Operating System: Win 7

If possible, add a screenshot here

image

image

@johnkennedy9147
Copy link
Contributor Author

@QuincyLarson @Bouncey flagging issue to you guys as if it affects a lot of users it might be a priority

@QuincyLarson
Copy link
Contributor

@johnkennedy9147 Thanks for reporting this.

Please check your JavaScript console. Do you see any errors there?

I'm not able to reproduce this on my machine.

@Wast-3
Copy link
Contributor

Wast-3 commented May 30, 2018

@QuincyLarson I have the exact same issue. I too could see the redeem cert areas before, and now they are missing. Javascript console reveals these errors.

image

@Wast-3
Copy link
Contributor

Wast-3 commented May 30, 2018

Actually, going through chrome gives me a completely blank settings page and the following errors.
image

In addition, I can't toggle any of the buttons (changing privacy settings, changing theme etc) when the page does load in firefox.

@johnkennedy9147
Copy link
Contributor Author

@QuincyLarson Hi yes there is a TypeError: can't convert null to object JSAlgoAndDSForm.jsx:59:31 showing in console. Seems to be pointing to a function that renders the Javascript Algorithms And Data Structures section which makes sense as the problem seemed to start after I submitted the solutions to try and claim the cert.

Apologies if this is misdirection (don't know how react works)

This line looks to be the issue in file JSAlgoAndDSForm.jsx:

const completeCount = Object.values(jsProjects)
      .filter(challengeInfo => Object.keys(challengeInfo).length !== 0)
.length;

There were two different errors when running at different times,
Originally got this: https://gist.github.com/johnkennedy9147/abdf3491d0257d3d36ad3715f3749591
Later getting this: https://gist.github.com/johnkennedy9147/d9cd26099dd99e424034b9399eae3f12

In between the two different errors I completed a one of the challenges in the section. The error didn't change again as I completed a few more.

In the curriculum map it shows projects completed:
image
but returning to them it hasnt saved my code.

Resubmitted them all and went back to settings, same issue seen, again code not being saved.

landing page shows
image
so there is a disconnect between these. (I've submitted the 5 responsive web design projects so with the 5 JS projects it should show 10)

There was some talk about not storing challenge solutions - with the JS projects being in the same format have they been accidentally affected?

@Wast-3
Copy link
Contributor

Wast-3 commented May 30, 2018

My guess would be that the issue happened after I completed the final project for JavaScript Algorithms and Data structures.

image

Before I finished the cash register, I believe I could see everything. Now that I have finished the final project, there is no option to claim a cert. Sometimes the page doesn't load at all.

@johnkennedy9147
Copy link
Contributor Author

@ChristianBeach commented whilst I was writing my essay - I also saw the CSP error but only intermittently and it doesn't seem relevant to this issue. I was going to look at it a bit and see what impact it is having. The buttons not toggling is new but I am getting it now so probably another issue.

@johnkennedy9147
Copy link
Contributor Author

downloaded my data, all the JS challenges and cert projects show solution and challengeType as null except the roman numeral one which is missing those keys.
example for Palindrome challenge

completedDate | 1527701862838
-- | --
id | "aaa48de84e1ecc7c742e1124"
solution | null
challengeType | null

@Wast-3
Copy link
Contributor

Wast-3 commented May 30, 2018

Is there any other way I can claim my cert besides the settings page? Currently I have no way of claiming my cert.

@johnkennedy9147
Copy link
Contributor Author

the buttons not working does seem to be related to this issue. signing in to my real account (not the one I am using for testing) they all work fine on both ff and chrome. signing in with the one I am using for testing they dont work since submitting the last js project. Also seem to only get the intermittent blank settings screen on that account so think its all connected.

@Wast-3
Copy link
Contributor

Wast-3 commented May 31, 2018

@johnkennedy9147 Thank God someone else has this problem then, it seems we have all the same symptoms. As an update, using mobile doesn't work either, and also sometimes displays a blank screen. The buttons don't work on mobile either

@johnkennedy9147
Copy link
Contributor Author

Might be this is something to do with the JS projects being challenge type 5 whereas everything else is type 3 or 4.

@Wast-3
Copy link
Contributor

Wast-3 commented May 31, 2018

Not sure if it's related at all but I can no longer view the curriculum when signed in under firefox, the button is non-responsive. It also appears that I am not signed in when I am at the https://learn.freecodecamp.org/ page (shows the sign in button) but going back to the settings page still shows I am signed in.

Under chrome it works fine.

@Xivik
Copy link

Xivik commented Jun 1, 2018

I've got the exact same issue.

Shortly after the update, I could see all the different certificates and links in my settings page. But that page is now completely broken, nothing saves, I can’t submit changes, fill in my name and city and stuff like that. The overview of the certificates and challenges is also completely missing, I can only see my basic info, and the signed academic honesty agreement, reset and delete account. That’s my entire settings page.

Issue remains over different browsers(chrome and edge latest version) both on my desktop and laptop, same problem on mobile.

my settings page only has the following elements now:
username/name/location/picture/about

privacy settings (these are all set to public)

download all your data

email settings
internet presence

portfolio settings
academic honesty policy
danger zone (reset/delete account)

I think the problem started after I added a portfolio item.

@aleksmn
Copy link

aleksmn commented Jun 2, 2018

Seems like I have absolutely same problem. Google Chrome console:
fcc-issue

@wangtian78
Copy link
Contributor

Same problem here. No certificate section in the settings.

@SamuelRiveraC
Copy link

Effectively the error is in this line of JSAlgoAndDSFomr.jsx at line 59
const completeCount = Object.values(jsProjects) .filter(challengeInfo => Object.keys(challengeInfo).length !== 0).length;

the problem is that challengeInfo is Undefined.

@johnkennedy9147
Copy link
Contributor Author

I setup a new account to test more - recreated issue by completing just one javascript project.

Full steps taken:
signed up with new email address
accepted TOS and privacy page (didnt check for email sorry QL 😄 )
clicked to continue to freeCodeCamp
clicked settings
verified could toggle buttons and that certificates sections present
went to curriculum
completed palindrome challenge
ran tests
clicked submit and continue to next challenge
clicked settings
sections now missing and (most) buttons not working

@shahsank3t
Copy link

Not sure if following points relate to this same issue but I am facing these on settings page:

  1. Cannot save any changes to "Your Internet Presence" and on every keypress, "ReactCompositeComponent.js:742 Uncaught TypeError: Cannot read property '_currentElement' of null" error gets increased in console.

image

  1. Cannot agree to "Academic Honesty Policy". On clicking "Agree", nothing happens, neither any console error nor any API is hit. Basically seems like a normal button with no click events on it.

@johnkennedy9147
Copy link
Contributor Author

@shahsank3t thanks, I hadn't noticed that.
It seems to be an additional symptom of this issue
throws that error on every keypress and on clicking save

@h-nick
Copy link

h-nick commented Jun 7, 2018

@shahsank3t Same thing happens when you try to add a non-FCC portfolio project.

You can't type anything on any field and you get the Uncaught TypeError: Cannot read property '_currentElement' of null error on every keypress.

untitled

@newnewb
Copy link

newnewb commented Jun 8, 2018

Is there a way to make API calls to the models through something like postman to get stuff like "completedChallenges" ?

Edit: Found it /api/users/get-public-profile?username={username}

@eolculnamo2
Copy link
Contributor

eolculnamo2 commented Jun 8, 2018

For what its worth, I did some digging and I hope this is helpful,

I had the cannot convert undefined or null to object error.

The jsProjects variable in JSAlgoAndDSForm.jsx is showing an object with the required JS projects, but instead of having objects, each of the keys has null or undefined... When I replace the null/undefined terms with empty variables, the missing section appears.

screen shot 2018-06-07 at 10 18 30 pm

This data is passed down from cert settings as a prop, jsProjects and equals userProjects[superBlock]

<JSAlgoAndDSForm
challenges={ challengeTitles }
claimCert={ claimCert }
hardGoTo={ hardGoTo }
isCertClaimed={ isCertClaimed }
jsProjects={ userProjects[superBlock] }
key={ superBlock }
projectBlockName={ projectBlockName }
superBlock={ superBlock }
username={ username }
/>

I'm also noticing that none of my completed JS projects have the option to show the solution... Idk if this is related or not.

OH, and the button to claim my certs doesnt work once I change the variables still :'(

@Kornelijus
Copy link
Contributor

Kornelijus commented Jun 8, 2018

In the meantime, does someone know the /services/ API endpoints to manually accept the honesty policy / claim our certificates? I'm looking for them atm.

Edit: A cURL for accepting the Academic Honesty Policy
Edit 2: Managed to claim my JS certificate with this cURL

@PeterKoe
Copy link

PeterKoe commented Jun 8, 2018

Same problem here. I have tried different browsers and computers, to no avail.

@johnkennedy9147
Copy link
Contributor Author

Further confirmation that the issue stems from not populating challenge type and/or solution fields.

On my real profile I have completed 3 of the 5 JS projects and everything on the settings page is working fine. I downloaded my data and in the completeChallenges section they have type 5 and show a saved solution as I completed them last year. (compared to my testing ids where these fields are null and the projects were completed after the release)

Palindrome example:

completedDate | 1498431974938
id | "aaa48de84e1ecc7c742e1124"
solution | "\nfunction palindrome(st…npalindrome(\"eye\");\n"
challengeType | 5

@QuincyLarson @raisedadead @Bouncey
I think this needs to be a priority issue as I believe that anyone completing any one of the 5 JS projects after the new release will experience this issue. And the issue breaks most of the functionality on the settings page.

@QuincyLarson
Copy link
Contributor

@johnkennedy9147 Thanks for the additional detail. @raisedadead is working on this at the moment and this may be helpful for him in remedying it :)

@raisedadead
Copy link
Member

@johnkennedy9147 if you could test this once again. We just deployed a fix.

@Xivik
Copy link

Xivik commented Jun 12, 2018

@raisedadead settings page still broken, certs are not there and still can't update any settings on my settings page. It won't save. Don't think the fix worked or it's not fully went through yet and I'm too fast^^

@raisedadead
Copy link
Member

@Xivik can you help me with screenshots of the DevTools' console and the settings page. I am around on https://gitter.im/raisedadead for a quick chat as well.

@raisedadead
Copy link
Member

You may need to do a hard-refresh, (Ctrl + F5 or Cmd + Shift + R) to get the latest changes, because the CDN would cache the old code for a while.

@raisedadead
Copy link
Member

Update:

For the fix to work properly you should have to complete any challenge on learn first, that will automatically migrate some things to get you around this issue.

@Peritract
Copy link
Contributor

Peritract commented Jun 12, 2018

The problem still persists. I've hard-refreshed and completed another challenge.

Here's a picture of the console errors:

@johnkennedy9147
Copy link
Contributor Author

johnkennedy9147 commented Jun 12, 2018

@raisedadead I found I had to resubmit all the JS challenges to resolve. But only on an id that had completed the challenges before the update on the day of the update(on 30th May), once I resubmitted them all it was fine.

@raisedadead
Copy link
Member

Awesome! @johnkennedy9147 we will run a migration to avoid this soon. thanks for the update.

@Peritract , thanks. Looking into it.

@johnkennedy9147
Copy link
Contributor Author

@Peritract I suspect you are facing the same scenario as I did, you could try resubmitting the 5 JS challenges and see if that resolves.

@Peritract
Copy link
Contributor

@johnkennedy9147 That worked. Everything seems fine now.

@Xivik
Copy link

Xivik commented Jun 12, 2018

My errors seem to be the same as the screenshots posted above ,if only I saved all my solutions :D I'll just trust it'll be fine once I get too that part then. Wanted to redo the challenges after the update to see if I could do them better with the new things I've learned anyway. (assuming it's fixed) thanks for your hard work!

@P1xt
Copy link
Contributor

P1xt commented Jun 12, 2018

Confirmed - as of right now, if you saved your solutions, you can just enter them again, and the JS certificate is fixed. If you didn't save them, however, there's no way to get them back. Even a download of your user data from the settings page doesn't contain solutions, and none of the links on public profile contain solutions.

@BTmathic
Copy link
Contributor

Yep, (rewriting and) resubmitting all the JS projects brought back all of the certificate sections in the Settings page. I was checking after each project and nothing seemed to change until the last project went up, so it does seem to need all of them. (The first two are super quick, the latter three not so bad if you're organized, if that's the word to use, so it's not so bad even in the worst case scenario. Extra practice either way!)

Thanks @raisedadead for the fix and @johnkennedy9147 for the workaround!

@raisedadead
Copy link
Member

raisedadead commented Jun 13, 2018

Thanks for the updates. We are also going to run a migration so that you may will not have to submit the projects once again. This step would need a planned maintenance downtime hence the inconvenience of submitting once again would remain for sometime.

Meanwhile @freeCodeCamp/moderators are requested to direct users facing the same issue to the workaround above.

@raisedadead raisedadead reopened this Jun 13, 2018
@freeCodeCamp freeCodeCamp locked and limited conversation to collaborators Jun 13, 2018
@raisedadead
Copy link
Member

Re-opened and locked conversation to collaborators to avoid "me too comments". Will be resolved with the planned DevOps.

@raisedadead
Copy link
Member

raisedadead commented Jun 13, 2018

Just to re-iterate the workaround:

  1. You may need to do a hard-refresh, (Ctrl + F5 or Cmd + Shift + R) to get the latest changes, because the CDN would cache the old code for a while.

  2. For the fix to work properly you should have to complete any challenge on learn first, that will automatically migrate some things to get you around this issue.

  3. I found I had to resubmit all the JS challenges to resolve. But only on an id that had completed the challenges before the update on the day of the update(on 30th May), once I resubmitted them all it was fine.
    ~ @johnkennedy9147

  4. The challenges that you would need to submit are

    Palindrome Checker
    Roman Numeral Converter
    Caesars Cipher
    Telephone Number Validator
    Cash Register
    

Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
None yet
Projects
None yet
Development

No branches or pull requests