learningequality / learningequality/studio

Unstable - Removing a channel from the community library is problematic

Open
#5,824 2 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

bug DEV: backend DEV: frontend P0 - critical TODO: needs decisions
Dominant language
Python
Stars
191
Forks
307
Avg merge
5d 6h
Merged PRs (30d)
10

Description

This issue is not open for contribution. Visit Contributing guidelines to learn about the contributing process and how to find suitable issues.

Observed behavior

In the administration there's no easy way to remove a channel from the community library - I need to delete the channel permanently to do so. Also after deleting the channel permanently when I go to the Community library page I can still see the channel card. When I click on the card I am getting the following error:

{
  "data": {
    "channel": [
      "Select a valid choice. That choice is not one of the available choices."
    ]
  },
  "status": 400,
  "statusText": "",
  "headers": {
    "allow": "GET, HEAD, OPTIONS",
    "alt-svc": "h3=\":443\"; ma=86400",
    "cf-cache-status": "DYNAMIC",
    "cf-ray": "9eba77fa3c9bf9bb-SOF",
    "content-language": "en",
    "content-length": "87",
    "content-type": "application/json",
    "date": "Mon, 13 Apr 2026 12:28:06 GMT",
    "etag": "\"df19434e4038926f6d4bbbfed9ee771e\"",
    "priority": "u=1,i",
    "referrer-policy": "same-origin",
    "server": "cloudflare",
    "server-timing": "cfExtPri",
    "vary": "Accept-Language, Cookie",
    "via": "1.1 google",
    "x-content-type-options": "nosniff",
    "x-frame-options": "DENY",
    "x-robots-tag": "noindex"
  },
  "config": {
    "transitional": {
      "silentJSONParsing": true,
      "forcedJSONParsing": true,
      "clarifyTimeoutError": false,
      "legacyInterceptorReqResOrdering": true
    },
    "adapter": [
      "xhr",
      "http",
      "fetch"
    ],
    "transformRequest": [
      null
    ],
    "transformResponse": [
      null
    ],
    "timeout": 0,
    "xsrfCookieName": "csrftoken",
    "xsrfHeaderName": "X-CSRFToken",
    "maxContentLength": -1,
    "maxBodyLength": -1,
    "env": {},
    "headers": {
      "Accept": "application/json, text/plain, */*"
    },
    "paramsSerializer": {},
    "params": {
      "channel": "c217470dccf44127aff4bbc27b840ded",
      "version": 6
    },
    "method": "get",
    "url": "/api/channelversion",
    "allowAbsoluteUrls": true,
    "signal": {}
  },
  "request": {
    "__sentry_xhr_v3__": {
      "method": "GET",
      "url": "/api/channelversion?channel=c217470dccf44127aff4bbc27b840ded&version=6",
      "request_headers": {
        "accept": "application/json, text/plain, */*",
        "x-csrftoken": "xyJuZpCcDWhq3KkwGXEI6Tu8pl8YIbXTRWVTbGkTeD3yVH02HPqtNkBVWEBicasy"
      },
      "body": null,
      "status_code": 400
    }
  }
}

https://github.com/user-attachments/assets/a14909ea-d9d4-4f32-8751-5d18f7edec9c

Expected behavior

The expected behavior should be further discussed and specified.

Steps to reproduce the issue

  1. Sign in to Studio at Unstable
  2. Create a new channel, import content and publish it.
  3. Click the Share button, select the 'Submit to community library' option and submit the form.
  4. Approve the submission as an admin
  5. Verify that the channel is displayed at the Community library page
  6. Delete the channel as an admin

Usage Details

  • Studio Unstable
  • OS: Windows 11
  • Browser: Chrome, Firefox

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Reproduce the administration flow described in the issue, then inspect the Community library page and the /api/channelversion request after a submitted channel is deleted. Clarify the expected removal behavior with maintainers before changing anything; done should include a defined behavior for deleted channels and no invalid channel request or stale card.

Written by the indexing model from the issue text.

Assessment

Tech stack
python
Domain
api, backend, content
Issue type
Bug
Difficulty
4/5
Estimated time
3-5 days
Activity status
Quiet
Clarity
Needs clarification
Newbie friendliness
25/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.