Skip to content

Bug: Learning resource URLs not validated, serving broken links that prevent student access #781

@anshul23102

Description

@anshul23102

Problem Statement

DevPath does not properly handle error cases in learning resource API, serving broken links and corrupt file URLs to users. When resources become unavailable (domain expires, CDN link breaks), users are left without learning materials.

Root Cause Analysis

Resource URLs probably hardcoded or not validated on save. No link health checking. No fallback for broken resources. No 404 handling for missing content. No versioning or archival of learning materials.

Solution Overview

  1. Implement URL validation before saving learning resources
  2. Add periodic link health checking (weekly, hourly for critical content)
  3. Implement fallback/alternative resources for broken links
  4. Archive local copies of important learning materials
  5. Implement 404 error handling with suggestions for alternative resources
  6. Add resource availability status indicators (active, archived, deprecated)
  7. Implement resource version history and rollback capability
  8. Alert admins when resources become unavailable

Type of Change

  • Bug fix (reliability)
  • New feature
  • Breaking change
  • Documentation update

Testing Done

Environment

  • Node.js 18.x+
  • HTTP link checking library
  • URL validation library

Manual Testing Steps

Test Case 1: Broken resource link

  1. Create learning path with external resource link
  2. Resource domain expires or CDN link breaks
  3. User tries to access resource

Expected: User sees "Resource unavailable" with alternatives
Actual: 404 error or broken link

Related Issue

Ensures learning materials remain accessible to students.

Suggested Labels

bug, level:intermediate, gssoc26, reliability, resource-management, content-availability

Metadata

Metadata

Assignees

No one assigned

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions