Freecodecamp: Sections missing from settings page

Created on 30 May 2018  ·  43Comments  ·  Source: freeCodeCamp/freeCodeCamp

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

Most helpful comment

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 :smile: )
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

All 43 comments

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

@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.

@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

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.

@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?

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.

@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.

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

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

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.

@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

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

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.

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.

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

Same problem here. No certificate section in the settings.

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.

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 :smile: )
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

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.

@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

@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

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}

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]

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 :'(

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

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

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.

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

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

@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^^

@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.

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.

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.

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

Here's a picture of the console errors:



@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.

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

@Peritract , thanks. Looking into it.

@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.

@johnkennedy9147 That worked. Everything seems fine now.

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!

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.

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!

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.

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

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
    
Was this page helpful?
0 / 5 - 0 ratings