Step 41 of Media Catalogue Workshop Fails Despite Correct __str__ Implementation

I am stuck on Step 41 of the FreeCodeCamp Media Catalogue workshop. The instructions require an if statement in the __str__ method that checks if the movies list is not empty, with a for loop indented inside that iterates over movies.

My code already matches the requirement:

python

def __str__(self):
    if not self.items:
        return "Media Catalogue (empty)"
    
    movies = self.get_movies()
    series = self.get_tv_series()

    result = f"Media Catalogue ({len(self.items)} items):\n\n"

    if movies:
        result += "=== MOVIES ===\n"
        for i, movie in enumerate(movies, start=1):
            result += f"{i}. {movie}\n"

    if series:
        result += "\n=== TV SERIES ===\n"
        for i, tv in enumerate(series, start=1):
            result += f"{i}. {tv}\n"

    return result

Despite this, the autograder continues to complain: “You should indent the existing for loop by one level and replace self.items with movies to iterate over movies only.”

I have already indented the loop and replaced self.items with movies. The line for i, movie in enumerate(movies, start=1): exists exactly as required.

This suggests the test is not evaluating the code correctly. It may be using a regex that only matches at the start of the file (re.match) instead of searching the whole function, or it is mis‑configured to fail even when the correct line is present.

Impact: Learners cannot progress past Step 41 and are blocked from completing the workshop and earning the certificate, even with correct code.

Expected Behavior: The autograder should accept the correct implementation when the loop is indented inside if movies: and iterates over movies.

Actual Behavior: The autograder rejects valid code and repeats the same error message.

please share a link to the challenge

Build a Media Catalogue: Step 41 | freeCodeCamp.org

try giving a second argument to enumerate without using named arguments

if you want to report this as a bug to request also named arguments be accepted please open an issue on github

Yes! works @ILM, But frustrate users.

feel free to open an issue so that both answers can be accepted