Welcome to the Treehouse Community
The Treehouse Community is a meeting place for developers, designers, and programmers of all backgrounds and skill levels to get support. Collaborate here on code errors or bugs that you need feedback on, or asking for an extra set of eyes on your latest project. Join thousands of Treehouse students and alumni in the community today. (Note: Only Treehouse students can comment or ask questions, but non-students are welcome to browse our conversations.)
Looking to learn something new?
Treehouse offers a seven day free trial for new students. Get access to thousands of hours of content and a supportive community. Start your free trial today.

Jon Foose
4,763 PointsCannot read property "source" of undefined
If an astronaut doesn't have a profile image, the callback fails for that instance. While there currently are three astronauts in space, the first one doesn't have an image and therefore doesn't appear.

James Shore
3,709 PointsI think its because the name we are being sent by the astrourl is a different name to what wikipedia is storing
3 Answers

Bobby Verlaan
29,372 PointsThere are now other astronauts in space compared to when the teacher made the video, so we are requesting different URLs with the API of Wikipedia to get the astronaut articles.
At this moment (April 2020) I get back 6 astronauts from open-notify.org. Looking at the data I get back from the Wikipedia API, I see 5 of the 6 requests for the astronauts give a 200 response. One fails with a 404 - not found. From the 5 responses I get back from Wikipedia you get an array output like this:
0: {type: "disambiguation", title: "Andrew Morgan", displaytitle: "Andrew Morgan", namespace: {…}, wikibase_item: "Q16263257", …}
1: {type: "standard", title: "Oleg Skripochka", displaytitle: "Oleg Skripochka", namespace: {…}, wikibase_item: "Q927249", …}
2: {type: "no-extract", title: "Chris Cassidy", displaytitle: "Chris Cassidy", namespace: {…}, titles: {…}, …}
3: {type: "standard", title: "Ivan Vagner", displaytitle: "Ivan Vagner", namespace: {…}, wikibase_item: "Q21856852", …}
4: {type: "standard", title: "Jessica Meir", displaytitle: "Jessica Meir", namespace: {…}, wikibase_item: "Q4795114", …}
Only 3 of these responses give back the article of the type 'standard'. Only in that type of response there is a thumbnail.source available. Therefore, only those three get rendered to my page.
I assume you have something similar going on. Hope this helps :-)

Viktor Lovgren
6,241 PointsThere is surely a better way to fix this that can apply to more cases, but right now these names need fixing: Chris Cassidy, Anatoly Ivanishin
btn.addEventListener("click", () => {
getJSON(astrosUrl, (json) => {
json.people.map((person) => {
if (person.name === "Anatoly Ivanishin") {
person.name = "Anatoli Ivanishin";
}
if (person.name === "Chris Cassidy") {
person.name = "Christopher Cassidy";
}
getJSON(wikiUrl + person.name, generateHTML);
});
});
});

Alexey Serpuhovitov
6,931 PointsI fixed it with a dictionary of names.
const imena = {
'Anatoly': 'Anatoli',
'Chris': 'Christopher'
};
function getProfile(json) {
const profiles = json.people.map( (person) => {
let firstName = person.name.split(' ')[0]; // find the first name
if (imena[firstName] != undefined) { // if the first name of an astronaut is in the dictionary, replace it
person.name = person.name.replace(firstName, imena[firstName]);
}
return getJSON(wikiUrl + person.name);
});
return Promise.all( profiles );
}
rydavim
18,781 Pointsrydavim
18,781 PointsYou'll need to post your code in order for the community to help you troubleshoot. The easiest way to do this is by posting a Workspace Snapshot. You can do this using the camera icon at the top of the workspace window, or review the video I linked for more information.