Skip to content

Release 0.56.10#3028

Merged
odlbot merged 4 commits intoreleasefrom
release-candidate
Mar 10, 2026
Merged

Release 0.56.10#3028
odlbot merged 4 commits intoreleasefrom
release-candidate

Conversation

@odlbot
Copy link
Contributor

@odlbot odlbot commented Mar 9, 2026

Matt Bertrand

Anastasia Beglova

@github-actions
Copy link

github-actions bot commented Mar 9, 2026

OpenAPI Changes

Show/hide 175 changes: 0 error, 0 warning, 175 info
175 changes: 0 error, 0 warning, 175 info
info	[response-optional-property-added] at head/openapi/specs/v0.yaml	
	in API GET /api/v0/vector_content_files_search/
		added the optional property 'results/items/direct_learning_resource_id' to the response with the '200' status

info	[response-optional-property-added] at head/openapi/specs/v0.yaml	
	in API GET /api/v0/vector_learning_resources_search/
		added the optional property 'results/items/oneOf[#/components/schemas/DocumentResource]/content_files/items/direct_learning_resource_id' to the response with the '200' status

info	[response-optional-property-added] at head/openapi/specs/v0.yaml	
	in API GET /api/v0/vector_learning_resources_search/
		added the optional property 'results/items/oneOf[#/components/schemas/VideoResource]/content_files/items/direct_learning_resource_id' to the response with the '200' status

info	[response-optional-property-became-read-only] at head/openapi/specs/v0.yaml	
	in API GET /api/v0/vector_learning_resources_search/
		the response optional property 'results/items/oneOf[#/components/schemas/DocumentResource]/description' became read-only for the status '200'

info	[response-optional-property-became-read-only] at head/openapi/specs/v0.yaml	
	in API GET /api/v0/vector_learning_resources_search/
		the response optional property 'results/items/oneOf[#/components/schemas/VideoResource]/description' became read-only for the status '200'

info	[response-property-became-required] at head/openapi/specs/v0.yaml	
	in API GET /api/v0/vector_learning_resources_search/
		the response property 'results/items/oneOf[#/components/schemas/DocumentResource]/description' became required for the status '200'

info	[response-property-became-required] at head/openapi/specs/v0.yaml	
	in API GET /api/v0/vector_learning_resources_search/
		the response property 'results/items/oneOf[#/components/schemas/VideoResource]/description' became required for the status '200'

info	[response-optional-property-added] at head/openapi/specs/v1.yaml	
	in API GET /api/v1/content_file_search/
		added the optional property 'results/items/direct_learning_resource_id' to the response with the '200' status

info	[response-optional-property-added] at head/openapi/specs/v1.yaml	
	in API GET /api/v1/contentfiles/
		added the optional property 'results/items/direct_learning_resource_id' to the response with the '200' status

info	[response-optional-property-added] at head/openapi/specs/v1.yaml	
	in API GET /api/v1/contentfiles/{id}/
		added the optional property 'direct_learning_resource_id' to the response with the '200' status

info	[response-optional-property-added] at head/openapi/specs/v1.yaml	
	in API GET /api/v1/courses/{learning_resource_id}/contentfiles/
		added the optional property 'results/items/direct_learning_resource_id' to the response with the '200' status

info	[response-optional-property-added] at head/openapi/specs/v1.yaml	
	in API GET /api/v1/courses/{learning_resource_id}/contentfiles/{id}/
		added the optional property 'direct_learning_resource_id' to the response with the '200' status

info	[response-optional-property-added] at head/openapi/specs/v1.yaml	
	in API GET /api/v1/featured/
		added the optional property 'results/items/oneOf[#/components/schemas/DocumentResource]/content_files/items/direct_learning_resource_id' to the response with the '200' status

info	[response-optional-property-added] at head/openapi/specs/v1.yaml	
	in API GET /api/v1/featured/
		added the optional property 'results/items/oneOf[#/components/schemas/VideoResource]/content_files/items/direct_learning_resource_id' to the response with the '200' status

info	[response-optional-property-became-read-only] at head/openapi/specs/v1.yaml	
	in API GET /api/v1/featured/
		the response optional property 'results/items/oneOf[#/components/schemas/DocumentResource]/description' became read-only for the status '200'

info	[response-optional-property-became-read-only] at head/openapi/specs/v1.yaml	
	in API GET /api/v1/featured/
		the response optional property 'results/items/oneOf[#/components/schemas/VideoResource]/description' became read-only for the status '200'

info	[response-property-became-required] at head/openapi/specs/v1.yaml	
	in API GET /api/v1/featured/
		the response property 'results/items/oneOf[#/components/schemas/DocumentResource]/description' became required for the status '200'

info	[response-property-became-required] at head/openapi/specs/v1.yaml	
	in API GET /api/v1/featured/
		the response property 'results/items/oneOf[#/components/schemas/VideoResource]/description' became required for the status '200'

info	[response-optional-property-added] at head/openapi/specs/v1.yaml	
	in API GET /api/v1/featured/{id}/
		added the optional property '/oneOf[#/components/schemas/DocumentResource]/content_files/items/direct_learning_resource_id' to the response with the '200' status

info	[response-optional-property-added] at head/openapi/specs/v1.yaml	
	in API GET /api/v1/featured/{id}/
		added the optional property '/oneOf[#/components/schemas/VideoResource]/content_files/items/direct_learning_resource_id' to the response with the '200' status

info	[response-optional-property-became-read-only] at head/openapi/specs/v1.yaml	
	in API GET /api/v1/featured/{id}/
		the response optional property '/oneOf[#/components/schemas/DocumentResource]/description' became read-only for the status '200'

info	[response-optional-property-became-read-only] at head/openapi/specs/v1.yaml	
	in API GET /api/v1/featured/{id}/
		the response optional property '/oneOf[#/components/schemas/VideoResource]/description' became read-only for the status '200'

info	[response-property-became-required] at head/openapi/specs/v1.yaml	
	in API GET /api/v1/featured/{id}/
		the response property '/oneOf[#/components/schemas/DocumentResource]/description' became required for the status '200'

info	[response-property-became-required] at head/openapi/specs/v1.yaml	
	in API GET /api/v1/featured/{id}/
		the response property '/oneOf[#/components/schemas/VideoResource]/description' became required for the status '200'

info	[response-optional-property-added] at head/openapi/specs/v1.yaml	
	in API GET /api/v1/learning_resources/
		added the optional property 'results/items/oneOf[#/components/schemas/DocumentResource]/content_files/items/direct_learning_resource_id' to the response with the '200' status

info	[response-optional-property-added] at head/openapi/specs/v1.yaml	
	in API GET /api/v1/learning_resources/
		added the optional property 'results/items/oneOf[#/components/schemas/VideoResource]/content_files/items/direct_learning_resource_id' to the response with the '200' status

info	[response-optional-property-became-read-only] at head/openapi/specs/v1.yaml	
	in API GET /api/v1/learning_resources/
		the response optional property 'results/items/oneOf[#/components/schemas/DocumentResource]/description' became read-only for the status '200'

info	[response-optional-property-became-read-only] at head/openapi/specs/v1.yaml	
	in API GET /api/v1/learning_resources/
		the response optional property 'results/items/oneOf[#/components/schemas/VideoResource]/description' became read-only for the status '200'

info	[response-property-became-required] at head/openapi/specs/v1.yaml	
	in API GET /api/v1/learning_resources/
		the response property 'results/items/oneOf[#/components/schemas/DocumentResource]/description' became required for the status '200'

info	[response-property-became-required] at head/openapi/specs/v1.yaml	
	in API GET /api/v1/learning_resources/
		the response property 'results/items/oneOf[#/components/schemas/VideoResource]/description' became required for the status '200'

info	[response-optional-property-added] at head/openapi/specs/v1.yaml	
	in API GET /api/v1/learning_resources/{id}/
		added the optional property '/oneOf[#/components/schemas/DocumentResource]/content_files/items/direct_learning_resource_id' to the response with the '200' status

info	[response-optional-property-added] at head/openapi/specs/v1.yaml	
	in API GET /api/v1/learning_resources/{id}/
		added the optional property '/oneOf[#/components/schemas/VideoResource]/content_files/items/direct_learning_resource_id' to the response with the '200' status

info	[response-optional-property-became-read-only] at head/openapi/specs/v1.yaml	
	in API GET /api/v1/learning_resources/{id}/
		the response optional property '/oneOf[#/components/schemas/DocumentResource]/description' became read-only for the status '200'

info	[response-optional-property-became-read-only] at head/openapi/specs/v1.yaml	
	in API GET /api/v1/learning_resources/{id}/
		the response optional property '/oneOf[#/components/schemas/VideoResource]/description' became read-only for the status '200'

info	[response-property-became-required] at head/openapi/specs/v1.yaml	
	in API GET /api/v1/learning_resources/{id}/
		the response property '/oneOf[#/components/schemas/DocumentResource]/description' became required for the status '200'

info	[response-property-became-required] at head/openapi/specs/v1.yaml	
	in API GET /api/v1/learning_resources/{id}/
		the response property '/oneOf[#/components/schemas/VideoResource]/description' became required for the status '200'

info	[response-optional-property-added] at head/openapi/specs/v1.yaml	
	in API PATCH /api/v1/learning_resources/{id}/learning_paths/
		added the optional property '/items/resource/allOf[#/components/schemas/LearningResource]/oneOf[#/components/schemas/DocumentResource]/content_files/items/direct_learning_resource_id' to the response with the '200' status

info	[response-optional-property-added] at head/openapi/specs/v1.yaml	
	in API PATCH /api/v1/learning_resources/{id}/learning_paths/
		added the optional property '/items/resource/allOf[#/components/schemas/LearningResource]/oneOf[#/components/schemas/VideoResource]/content_files/items/direct_learning_resource_id' to the response with the '200' status

info	[response-optional-property-became-read-only] at head/openapi/specs/v1.yaml	
	in API PATCH /api/v1/learning_resources/{id}/learning_paths/
		the response optional property '/items/resource/allOf[#/components/schemas/LearningResource]/oneOf[#/components/schemas/DocumentResource]/description' became read-only for the status '200'

info	[response-optional-property-became-read-only] at head/openapi/specs/v1.yaml	
	in API PATCH /api/v1/learning_resources/{id}/learning_paths/
		the response optional property '/items/resource/allOf[#/components/schemas/LearningResource]/oneOf[#/components/schemas/VideoResource]/description' became read-only for the status '200'

info	[response-property-became-required] at head/openapi/specs/v1.yaml	
	in API PATCH /api/v1/learning_resources/{id}/learning_paths/
		the response property '/items/resource/allOf[#/components/schemas/LearningResource]/oneOf[#/components/schemas/DocumentResource]/description' became required for the status '200'

info	[response-property-became-required] at head/openapi/specs/v1.yaml	
	in API PATCH /api/v1/learning_resources/{id}/learning_paths/
		the response property '/items/resource/allOf[#/components/schemas/LearningResource]/oneOf[#/components/schemas/VideoResource]/description' became required for the status '200'

info	[response-optional-property-added] at head/openapi/specs/v1.yaml	
	in API GET /api/v1/learning_resources/{id}/similar/
		added the optional property '/items/oneOf[#/components/schemas/DocumentResource]/content_files/items/direct_learning_resource_id' to the response with the '200' status

info	[response-optional-property-added] at head/openapi/specs/v1.yaml	
	in API GET /api/v1/learning_resources/{id}/similar/
		added the optional property '/items/oneOf[#/components/schemas/VideoResource]/content_files/items/direct_learning_resource_id' to the response with the '200' status

info	[response-optional-property-became-read-only] at head/openapi/specs/v1.yaml	
	in API GET /api/v1/learning_resources/{id}/similar/
		the response optional property '/items/oneOf[#/components/schemas/DocumentResource]/description' became read-only for the status '200'

info	[response-optional-property-became-read-only] at head/openapi/specs/v1.yaml	
	in API GET /api/v1/learning_resources/{id}/similar/
		the response optional property '/items/oneOf[#/components/schemas/VideoResource]/description' became read-only for the status '200'

info	[response-property-became-required] at head/openapi/specs/v1.yaml	
	in API GET /api/v1/learning_resources/{id}/similar/
		the response property '/items/oneOf[#/components/schemas/DocumentResource]/description' became required for the status '200'

info	[response-property-became-required] at head/openapi/specs/v1.yaml	
	in API GET /api/v1/learning_resources/{id}/similar/
		the response property '/items/oneOf[#/components/schemas/VideoResource]/description' became required for the status '200'

info	[response-optional-property-added] at head/openapi/specs/v1.yaml	
	in API PATCH /api/v1/learning_resources/{id}/userlists/
		added the optional property '/items/resource/allOf[#/components/schemas/LearningResource]/oneOf[#/components/schemas/DocumentResource]/content_files/items/direct_learning_resource_id' to the response with the '200' status

info	[response-optional-property-added] at head/openapi/specs/v1.yaml	
	in API PATCH /api/v1/learning_resources/{id}/userlists/
		added the optional property '/items/resource/allOf[#/components/schemas/LearningResource]/oneOf[#/components/schemas/VideoResource]/content_files/items/direct_learning_resource_id' to the response with the '200' status

info	[response-optional-property-became-read-only] at head/openapi/specs/v1.yaml	
	in API PATCH /api/v1/learning_resources/{id}/userlists/
		the response optional property '/items/resource/allOf[#/components/schemas/LearningResource]/oneOf[#/components/schemas/DocumentResource]/description' became read-only for the status '200'

info	[response-optional-property-became-read-only] at head/openapi/specs/v1.yaml	
	in API PATCH /api/v1/learning_resources/{id}/userlists/
		the response optional property '/items/resource/allOf[#/components/schemas/LearningResource]/oneOf[#/components/schemas/VideoResource]/description' became read-only for the status '200'

info	[response-property-became-required] at head/openapi/specs/v1.yaml	
	in API PATCH /api/v1/learning_resources/{id}/userlists/
		the response property '/items/resource/allOf[#/components/schemas/LearningResource]/oneOf[#/components/schemas/DocumentResource]/description' became required for the status '200'

info	[response-property-became-required] at head/openapi/specs/v1.yaml	
	in API PATCH /api/v1/learning_resources/{id}/userlists/
		the response property '/items/resource/allOf[#/components/schemas/LearningResource]/oneOf[#/components/schemas/VideoResource]/description' became required for the status '200'

info	[response-optional-property-added] at head/openapi/specs/v1.yaml	
	in API GET /api/v1/learning_resources/{id}/vector_similar/
		added the optional property '/items/oneOf[#/components/schemas/DocumentResource]/content_files/items/direct_learning_resource_id' to the response with the '200' status

info	[response-optional-property-added] at head/openapi/specs/v1.yaml	
	in API GET /api/v1/learning_resources/{id}/vector_similar/
		added the optional property '/items/oneOf[#/components/schemas/VideoResource]/content_files/items/direct_learning_resource_id' to the response with the '200' status

info	[response-optional-property-became-read-only] at head/openapi/specs/v1.yaml	
	in API GET /api/v1/learning_resources/{id}/vector_similar/
		the response optional property '/items/oneOf[#/components/schemas/DocumentResource]/description' became read-only for the status '200'

info	[response-optional-property-became-read-only] at head/openapi/specs/v1.yaml	
	in API GET /api/v1/learning_resources/{id}/vector_similar/
		the response optional property '/items/oneOf[#/components/schemas/VideoResource]/description' became read-only for the status '200'

info	[response-property-became-required] at head/openapi/specs/v1.yaml	
	in API GET /api/v1/learning_resources/{id}/vector_similar/
		the response property '/items/oneOf[#/components/schemas/DocumentResource]/description' became required for the status '200'

info	[response-property-became-required] at head/openapi/specs/v1.yaml	
	in API GET /api/v1/learning_resources/{id}/vector_similar/
		the response property '/items/oneOf[#/components/schemas/VideoResource]/description' became required for the status '200'

info	[response-optional-property-added] at head/openapi/specs/v1.yaml	
	in API GET /api/v1/learning_resources/{learning_resource_id}/contentfiles/
		added the optional property 'results/items/direct_learning_resource_id' to the response with the '200' status

info	[response-optional-property-added] at head/openapi/specs/v1.yaml	
	in API GET /api/v1/learning_resources/{learning_resource_id}/contentfiles/{id}/
		added the optional property 'direct_learning_resource_id' to the response with the '200' status

info	[response-optional-property-added] at head/openapi/specs/v1.yaml	
	in API GET /api/v1/learning_resources/{learning_resource_id}/items/
		added the optional property 'results/items/resource/allOf[#/components/schemas/LearningResource]/oneOf[#/components/schemas/DocumentResource]/content_files/items/direct_learning_resource_id' to the response with the '200' status

info	[response-optional-property-added] at head/openapi/specs/v1.yaml	
	in API GET /api/v1/learning_resources/{learning_resource_id}/items/
		added the optional property 'results/items/resource/allOf[#/components/schemas/LearningResource]/oneOf[#/components/schemas/VideoResource]/content_files/items/direct_learning_resource_id' to the response with the '200' status

info	[response-optional-property-became-read-only] at head/openapi/specs/v1.yaml	
	in API GET /api/v1/learning_resources/{learning_resource_id}/items/
		the response optional property 'results/items/resource/allOf[#/components/schemas/LearningResource]/oneOf[#/components/schemas/DocumentResource]/description' became read-only for the status '200'

info	[response-optional-property-became-read-only] at head/openapi/specs/v1.yaml	
	in API GET /api/v1/learning_resources/{learning_resource_id}/items/
		the response optional property 'results/items/resource/allOf[#/components/schemas/LearningResource]/oneOf[#/components/schemas/VideoResource]/description' became read-only for the status '200'

info	[response-property-became-required] at head/openapi/specs/v1.yaml	
	in API GET /api/v1/learning_resources/{learning_resource_id}/items/
		the response property 'results/items/resource/allOf[#/components/schemas/LearningResource]/oneOf[#/components/schemas/DocumentResource]/description' became required for the status '200'

info	[response-property-became-required] at head/openapi/specs/v1.yaml	
	in API GET /api/v1/learning_resources/{learning_resource_id}/items/
		the response property 'results/items/resource/allOf[#/components/schemas/LearningResource]/oneOf[#/components/schemas/VideoResource]/description' became required for the status '200'

info	[response-optional-property-added] at head/openapi/specs/v1.yaml	
	in API GET /api/v1/learning_resources/{learning_resource_id}/items/{id}/
		added the optional property 'resource/allOf[#/components/schemas/LearningResource]/oneOf[#/components/schemas/DocumentResource]/content_files/items/direct_learning_resource_id' to the response with the '200' status

info	[response-optional-property-added] at head/openapi/specs/v1.yaml	
	in API GET /api/v1/learning_resources/{learning_resource_id}/items/{id}/
		added the optional property 'resource/allOf[#/components/schemas/LearningResource]/oneOf[#/components/schemas/VideoResource]/content_files/items/direct_learning_resource_id' to the response with the '200' status

info	[response-optional-property-became-read-only] at head/openapi/specs/v1.yaml	
	in API GET /api/v1/learning_resources/{learning_resource_id}/items/{id}/
		the response optional property 'resource/allOf[#/components/schemas/LearningResource]/oneOf[#/components/schemas/DocumentResource]/description' became read-only for the status '200'

info	[response-optional-property-became-read-only] at head/openapi/specs/v1.yaml	
	in API GET /api/v1/learning_resources/{learning_resource_id}/items/{id}/
		the response optional property 'resource/allOf[#/components/schemas/LearningResource]/oneOf[#/components/schemas/VideoResource]/description' became read-only for the status '200'

info	[response-property-became-required] at head/openapi/specs/v1.yaml	
	in API GET /api/v1/learning_resources/{learning_resource_id}/items/{id}/
		the response property 'resource/allOf[#/components/schemas/LearningResource]/oneOf[#/components/schemas/DocumentResource]/description' became required for the status '200'

info	[response-property-became-required] at head/openapi/specs/v1.yaml	
	in API GET /api/v1/learning_resources/{learning_resource_id}/items/{id}/
		the response property 'resource/allOf[#/components/schemas/LearningResource]/oneOf[#/components/schemas/VideoResource]/description' became required for the status '200'

info	[new-optional-request-parameter] at head/openapi/specs/v1.yaml	
	in API GET /api/v1/learning_resources_search/
		added the new optional 'query' request parameter 'resource_category'

info	[new-optional-request-parameter] at head/openapi/specs/v1.yaml	
	in API GET /api/v1/learning_resources_search/
		added the new optional 'query' request parameter 'show_ocw_files'

info	[response-optional-property-added] at head/openapi/specs/v1.yaml	
	in API GET /api/v1/learning_resources_search/
		added the optional property 'results/items/oneOf[#/components/schemas/DocumentResource]/content_files/items/direct_learning_resource_id' to the response with the '200' status

info	[response-optional-property-added] at head/openapi/specs/v1.yaml	
	in API GET /api/v1/learning_resources_search/
		added the optional property 'results/items/oneOf[#/components/schemas/VideoResource]/content_files/items/direct_learning_resource_id' to the response with the '200' status

info	[response-optional-property-became-read-only] at head/openapi/specs/v1.yaml	
	in API GET /api/v1/learning_resources_search/
		the response optional property 'results/items/oneOf[#/components/schemas/DocumentResource]/description' became read-only for the status '200'

info	[response-optional-property-became-read-only] at head/openapi/specs/v1.yaml	
	in API GET /api/v1/learning_resources_search/
		the response optional property 'results/items/oneOf[#/components/schemas/VideoResource]/description' became read-only for the status '200'

info	[response-property-became-required] at head/openapi/specs/v1.yaml	
	in API GET /api/v1/learning_resources_search/
		the response property 'results/items/oneOf[#/components/schemas/DocumentResource]/description' became required for the status '200'

info	[response-property-became-required] at head/openapi/specs/v1.yaml	
	in API GET /api/v1/learning_resources_search/
		the response property 'results/items/oneOf[#/components/schemas/VideoResource]/description' became required for the status '200'

info	[new-optional-request-parameter] at head/openapi/specs/v1.yaml	
	in API GET /api/v1/learning_resources_user_subscription/
		added the new optional 'query' request parameter 'resource_category'

info	[new-optional-request-parameter] at head/openapi/specs/v1.yaml	
	in API GET /api/v1/learning_resources_user_subscription/
		added the new optional 'query' request parameter 'show_ocw_files'

info	[new-optional-request-parameter] at head/openapi/specs/v1.yaml	
	in API GET /api/v1/learning_resources_user_subscription/check/
		added the new optional 'query' request parameter 'resource_category'

info	[new-optional-request-parameter] at head/openapi/specs/v1.yaml	
	in API GET /api/v1/learning_resources_user_subscription/check/
		added the new optional 'query' request parameter 'show_ocw_files'

info	[new-optional-request-parameter] at head/openapi/specs/v1.yaml	
	in API POST /api/v1/learning_resources_user_subscription/subscribe/
		added the new optional 'query' request parameter 'resource_category'

info	[new-optional-request-parameter] at head/openapi/specs/v1.yaml	
	in API POST /api/v1/learning_resources_user_subscription/subscribe/
		added the new optional 'query' request parameter 'show_ocw_files'

info	[new-optional-request-property] at head/openapi/specs/v1.yaml	
	in API POST /api/v1/learning_resources_user_subscription/subscribe/
		added the new optional request property 'resource_category' (media type: multipart/form-data)

info	[new-optional-request-property] at head/openapi/specs/v1.yaml	
	in API POST /api/v1/learning_resources_user_subscription/subscribe/
		added the new optional request property 'resource_category' (media type: application/x-www-form-urlencoded)

info	[new-optional-request-property] at head/openapi/specs/v1.yaml	
	in API POST /api/v1/learning_resources_user_subscription/subscribe/
		added the new optional request property 'resource_category' (media type: application/json)

info	[new-optional-request-property] at head/openapi/specs/v1.yaml	
	in API POST /api/v1/learning_resources_user_subscription/subscribe/
		added the new optional request property 'show_ocw_files' (media type: multipart/form-data)

info	[new-optional-request-property] at head/openapi/specs/v1.yaml	
	in API POST /api/v1/learning_resources_user_subscription/subscribe/
		added the new optional request property 'show_ocw_files' (media type: application/json)

info	[new-optional-request-property] at head/openapi/specs/v1.yaml	
	in API POST /api/v1/learning_resources_user_subscription/subscribe/
		added the new optional request property 'show_ocw_files' (media type: application/x-www-form-urlencoded)

info	[request-property-enum-value-added] at head/openapi/specs/v1.yaml	
	in API POST /api/v1/learning_resources_user_subscription/subscribe/
		added the new 'resource_category' enum value to the request property 'aggregations/items/' (media type: multipart/form-data)

info	[request-property-enum-value-added] at head/openapi/specs/v1.yaml	
	in API POST /api/v1/learning_resources_user_subscription/subscribe/
		added the new 'resource_category' enum value to the request property 'aggregations/items/' (media type: application/json)

info	[request-property-enum-value-added] at head/openapi/specs/v1.yaml	
	in API POST /api/v1/learning_resources_user_subscription/subscribe/
		added the new 'resource_category' enum value to the request property 'aggregations/items/' (media type: application/x-www-form-urlencoded)

info	[response-optional-property-added] at head/openapi/specs/v1.yaml	
	in API GET /api/v1/learningpaths/{learning_resource_id}/items/
		added the optional property 'results/items/resource/allOf[#/components/schemas/LearningResource]/oneOf[#/components/schemas/DocumentResource]/content_files/items/direct_learning_resource_id' to the response with the '200' status

info	[response-optional-property-added] at head/openapi/specs/v1.yaml	
	in API GET /api/v1/learningpaths/{learning_resource_id}/items/
		added the optional property 'results/items/resource/allOf[#/components/schemas/LearningResource]/oneOf[#/components/schemas/VideoResource]/content_files/items/direct_learning_resource_id' to the response with the '200' status

info	[response-optional-property-became-read-only] at head/openapi/specs/v1.yaml	
	in API GET /api/v1/learningpaths/{learning_resource_id}/items/
		the response optional property 'results/items/resource/allOf[#/components/schemas/LearningResource]/oneOf[#/components/schemas/DocumentResource]/description' became read-only for the status '200'

info	[response-optional-property-became-read-only] at head/openapi/specs/v1.yaml	
	in API GET /api/v1/learningpaths/{learning_resource_id}/items/
		the response optional property 'results/items/resource/allOf[#/components/schemas/LearningResource]/oneOf[#/components/schemas/VideoResource]/description' became read-only for the status '200'

info	[response-property-became-required] at head/openapi/specs/v1.yaml	
	in API GET /api/v1/learningpaths/{learning_resource_id}/items/
		the response property 'results/items/resource/allOf[#/components/schemas/LearningResource]/oneOf[#/components/schemas/DocumentResource]/description' became required for the status '200'

info	[response-property-became-required] at head/openapi/specs/v1.yaml	
	in API GET /api/v1/learningpaths/{learning_resource_id}/items/
		the response property 'results/items/resource/allOf[#/components/schemas/LearningResource]/oneOf[#/components/schemas/VideoResource]/description' became required for the status '200'

info	[response-optional-property-added] at head/openapi/specs/v1.yaml	
	in API POST /api/v1/learningpaths/{learning_resource_id}/items/
		added the optional property 'resource/allOf[#/components/schemas/LearningResource]/oneOf[#/components/schemas/DocumentResource]/content_files/items/direct_learning_resource_id' to the response with the '201' status

info	[response-optional-property-added] at head/openapi/specs/v1.yaml	
	in API POST /api/v1/learningpaths/{learning_resource_id}/items/
		added the optional property 'resource/allOf[#/components/schemas/LearningResource]/oneOf[#/components/schemas/VideoResource]/content_files/items/direct_learning_resource_id' to the response with the '201' status

info	[response-optional-property-became-read-only] at head/openapi/specs/v1.yaml	
	in API POST /api/v1/learningpaths/{learning_resource_id}/items/
		the response optional property 'resource/allOf[#/components/schemas/LearningResource]/oneOf[#/components/schemas/DocumentResource]/description' became read-only for the status '201'

info	[response-optional-property-became-read-only] at head/openapi/specs/v1.yaml	
	in API POST /api/v1/learningpaths/{learning_resource_id}/items/
		the response optional property 'resource/allOf[#/components/schemas/LearningResource]/oneOf[#/components/schemas/VideoResource]/description' became read-only for the status '201'

info	[response-property-became-required] at head/openapi/specs/v1.yaml	
	in API POST /api/v1/learningpaths/{learning_resource_id}/items/
		the response property 'resource/allOf[#/components/schemas/LearningResource]/oneOf[#/components/schemas/DocumentResource]/description' became required for the status '201'

info	[response-property-became-required] at head/openapi/specs/v1.yaml	
	in API POST /api/v1/learningpaths/{learning_resource_id}/items/
		the response property 'resource/allOf[#/components/schemas/LearningResource]/oneOf[#/components/schemas/VideoResource]/description' became required for the status '201'

info	[response-optional-property-added] at head/openapi/specs/v1.yaml	
	in API GET /api/v1/learningpaths/{learning_resource_id}/items/{id}/
		added the optional property 'resource/allOf[#/components/schemas/LearningResource]/oneOf[#/components/schemas/DocumentResource]/content_files/items/direct_learning_resource_id' to the response with the '200' status

info	[response-optional-property-added] at head/openapi/specs/v1.yaml	
	in API GET /api/v1/learningpaths/{learning_resource_id}/items/{id}/
		added the optional property 'resource/allOf[#/components/schemas/LearningResource]/oneOf[#/components/schemas/VideoResource]/content_files/items/direct_learning_resource_id' to the response with the '200' status

info	[response-optional-property-became-read-only] at head/openapi/specs/v1.yaml	
	in API GET /api/v1/learningpaths/{learning_resource_id}/items/{id}/
		the response optional property 'resource/allOf[#/components/schemas/LearningResource]/oneOf[#/components/schemas/DocumentResource]/description' became read-only for the status '200'

info	[response-optional-property-became-read-only] at head/openapi/specs/v1.yaml	
	in API GET /api/v1/learningpaths/{learning_resource_id}/items/{id}/
		the response optional property 'resource/allOf[#/components/schemas/LearningResource]/oneOf[#/components/schemas/VideoResource]/description' became read-only for the status '200'

info	[response-property-became-required] at head/openapi/specs/v1.yaml	
	in API GET /api/v1/learningpaths/{learning_resource_id}/items/{id}/
		the response property 'resource/allOf[#/components/schemas/LearningResource]/oneOf[#/components/schemas/DocumentResource]/description' became required for the status '200'

info	[response-property-became-required] at head/openapi/specs/v1.yaml	
	in API GET /api/v1/learningpaths/{learning_resource_id}/items/{id}/
		the response property 'resource/allOf[#/components/schemas/LearningResource]/oneOf[#/components/schemas/VideoResource]/description' became required for the status '200'

info	[response-optional-property-added] at head/openapi/specs/v1.yaml	
	in API PATCH /api/v1/learningpaths/{learning_resource_id}/items/{id}/
		added the optional property 'resource/allOf[#/components/schemas/LearningResource]/oneOf[#/components/schemas/DocumentResource]/content_files/items/direct_learning_resource_id' to the response with the '200' status

info	[response-optional-property-added] at head/openapi/specs/v1.yaml	
	in API PATCH /api/v1/learningpaths/{learning_resource_id}/items/{id}/
		added the optional property 'resource/allOf[#/components/schemas/LearningResource]/oneOf[#/components/schemas/VideoResource]/content_files/items/direct_learning_resource_id' to the response with the '200' status

info	[response-optional-property-became-read-only] at head/openapi/specs/v1.yaml	
	in API PATCH /api/v1/learningpaths/{learning_resource_id}/items/{id}/
		the response optional property 'resource/allOf[#/components/schemas/LearningResource]/oneOf[#/components/schemas/DocumentResource]/description' became read-only for the status '200'

info	[response-optional-property-became-read-only] at head/openapi/specs/v1.yaml	
	in API PATCH /api/v1/learningpaths/{learning_resource_id}/items/{id}/
		the response optional property 'resource/allOf[#/components/schemas/LearningResource]/oneOf[#/components/schemas/VideoResource]/description' became read-only for the status '200'

info	[response-property-became-required] at head/openapi/specs/v1.yaml	
	in API PATCH /api/v1/learningpaths/{learning_resource_id}/items/{id}/
		the response property 'resource/allOf[#/components/schemas/LearningResource]/oneOf[#/components/schemas/DocumentResource]/description' became required for the status '200'

info	[response-property-became-required] at head/openapi/specs/v1.yaml	
	in API PATCH /api/v1/learningpaths/{learning_resource_id}/items/{id}/
		the response property 'resource/allOf[#/components/schemas/LearningResource]/oneOf[#/components/schemas/VideoResource]/description' became required for the status '200'

info	[response-optional-property-added] at head/openapi/specs/v1.yaml	
	in API GET /api/v1/podcasts/{learning_resource_id}/items/
		added the optional property 'results/items/resource/allOf[#/components/schemas/LearningResource]/oneOf[#/components/schemas/DocumentResource]/content_files/items/direct_learning_resource_id' to the response with the '200' status

info	[response-optional-property-added] at head/openapi/specs/v1.yaml	
	in API GET /api/v1/podcasts/{learning_resource_id}/items/
		added the optional property 'results/items/resource/allOf[#/components/schemas/LearningResource]/oneOf[#/components/schemas/VideoResource]/content_files/items/direct_learning_resource_id' to the response with the '200' status

info	[response-optional-property-became-read-only] at head/openapi/specs/v1.yaml	
	in API GET /api/v1/podcasts/{learning_resource_id}/items/
		the response optional property 'results/items/resource/allOf[#/components/schemas/LearningResource]/oneOf[#/components/schemas/DocumentResource]/description' became read-only for the status '200'

info	[response-optional-property-became-read-only] at head/openapi/specs/v1.yaml	
	in API GET /api/v1/podcasts/{learning_resource_id}/items/
		the response optional property 'results/items/resource/allOf[#/components/schemas/LearningResource]/oneOf[#/components/schemas/VideoResource]/description' became read-only for the status '200'

info	[response-property-became-required] at head/openapi/specs/v1.yaml	
	in API GET /api/v1/podcasts/{learning_resource_id}/items/
		the response property 'results/items/resource/allOf[#/components/schemas/LearningResource]/oneOf[#/components/schemas/DocumentResource]/description' became required for the status '200'

info	[response-property-became-required] at head/openapi/specs/v1.yaml	
	in API GET /api/v1/podcasts/{learning_resource_id}/items/
		the response property 'results/items/resource/allOf[#/components/schemas/LearningResource]/oneOf[#/components/schemas/VideoResource]/description' became required for the status '200'

info	[response-optional-property-added] at head/openapi/specs/v1.yaml	
	in API GET /api/v1/podcasts/{learning_resource_id}/items/{id}/
		added the optional property 'resource/allOf[#/components/schemas/LearningResource]/oneOf[#/components/schemas/DocumentResource]/content_files/items/direct_learning_resource_id' to the response with the '200' status

info	[response-optional-property-added] at head/openapi/specs/v1.yaml	
	in API GET /api/v1/podcasts/{learning_resource_id}/items/{id}/
		added the optional property 'resource/allOf[#/components/schemas/LearningResource]/oneOf[#/components/schemas/VideoResource]/content_files/items/direct_learning_resource_id' to the response with the '200' status

info	[response-optional-property-became-read-only] at head/openapi/specs/v1.yaml	
	in API GET /api/v1/podcasts/{learning_resource_id}/items/{id}/
		the response optional property 'resource/allOf[#/components/schemas/LearningResource]/oneOf[#/components/schemas/DocumentResource]/description' became read-only for the status '200'

info	[response-optional-property-became-read-only] at head/openapi/specs/v1.yaml	
	in API GET /api/v1/podcasts/{learning_resource_id}/items/{id}/
		the response optional property 'resource/allOf[#/components/schemas/LearningResource]/oneOf[#/components/schemas/VideoResource]/description' became read-only for the status '200'

info	[response-property-became-required] at head/openapi/specs/v1.yaml	
	in API GET /api/v1/podcasts/{learning_resource_id}/items/{id}/
		the response property 'resource/allOf[#/components/schemas/LearningResource]/oneOf[#/components/schemas/DocumentResource]/description' became required for the status '200'

info	[response-property-became-required] at head/openapi/specs/v1.yaml	
	in API GET /api/v1/podcasts/{learning_resource_id}/items/{id}/
		the response property 'resource/allOf[#/components/schemas/LearningResource]/oneOf[#/components/schemas/VideoResource]/description' became required for the status '200'

info	[response-optional-property-added] at head/openapi/specs/v1.yaml	
	in API GET /api/v1/userlists/{userlist_id}/items/
		added the optional property 'results/items/resource/allOf[#/components/schemas/LearningResource]/oneOf[#/components/schemas/DocumentResource]/content_files/items/direct_learning_resource_id' to the response with the '200' status

info	[response-optional-property-added] at head/openapi/specs/v1.yaml	
	in API GET /api/v1/userlists/{userlist_id}/items/
		added the optional property 'results/items/resource/allOf[#/components/schemas/LearningResource]/oneOf[#/components/schemas/VideoResource]/content_files/items/direct_learning_resource_id' to the response with the '200' status

info	[response-optional-property-became-read-only] at head/openapi/specs/v1.yaml	
	in API GET /api/v1/userlists/{userlist_id}/items/
		the response optional property 'results/items/resource/allOf[#/components/schemas/LearningResource]/oneOf[#/components/schemas/DocumentResource]/description' became read-only for the status '200'

info	[response-optional-property-became-read-only] at head/openapi/specs/v1.yaml	
	in API GET /api/v1/userlists/{userlist_id}/items/
		the response optional property 'results/items/resource/allOf[#/components/schemas/LearningResource]/oneOf[#/components/schemas/VideoResource]/description' became read-only for the status '200'

info	[response-property-became-required] at head/openapi/specs/v1.yaml	
	in API GET /api/v1/userlists/{userlist_id}/items/
		the response property 'results/items/resource/allOf[#/components/schemas/LearningResource]/oneOf[#/components/schemas/DocumentResource]/description' became required for the status '200'

info	[response-property-became-required] at head/openapi/specs/v1.yaml	
	in API GET /api/v1/userlists/{userlist_id}/items/
		the response property 'results/items/resource/allOf[#/components/schemas/LearningResource]/oneOf[#/components/schemas/VideoResource]/description' became required for the status '200'

info	[response-optional-property-added] at head/openapi/specs/v1.yaml	
	in API POST /api/v1/userlists/{userlist_id}/items/
		added the optional property 'resource/allOf[#/components/schemas/LearningResource]/oneOf[#/components/schemas/DocumentResource]/content_files/items/direct_learning_resource_id' to the response with the '201' status

info	[response-optional-property-added] at head/openapi/specs/v1.yaml	
	in API POST /api/v1/userlists/{userlist_id}/items/
		added the optional property 'resource/allOf[#/components/schemas/LearningResource]/oneOf[#/components/schemas/VideoResource]/content_files/items/direct_learning_resource_id' to the response with the '201' status

info	[response-optional-property-became-read-only] at head/openapi/specs/v1.yaml	
	in API POST /api/v1/userlists/{userlist_id}/items/
		the response optional property 'resource/allOf[#/components/schemas/LearningResource]/oneOf[#/components/schemas/DocumentResource]/description' became read-only for the status '201'

info	[response-optional-property-became-read-only] at head/openapi/specs/v1.yaml	
	in API POST /api/v1/userlists/{userlist_id}/items/
		the response optional property 'resource/allOf[#/components/schemas/LearningResource]/oneOf[#/components/schemas/VideoResource]/description' became read-only for the status '201'

info	[response-property-became-required] at head/openapi/specs/v1.yaml	
	in API POST /api/v1/userlists/{userlist_id}/items/
		the response property 'resource/allOf[#/components/schemas/LearningResource]/oneOf[#/components/schemas/DocumentResource]/description' became required for the status '201'

info	[response-property-became-required] at head/openapi/specs/v1.yaml	
	in API POST /api/v1/userlists/{userlist_id}/items/
		the response property 'resource/allOf[#/components/schemas/LearningResource]/oneOf[#/components/schemas/VideoResource]/description' became required for the status '201'

info	[response-optional-property-added] at head/openapi/specs/v1.yaml	
	in API GET /api/v1/userlists/{userlist_id}/items/{id}/
		added the optional property 'resource/allOf[#/components/schemas/LearningResource]/oneOf[#/components/schemas/DocumentResource]/content_files/items/direct_learning_resource_id' to the response with the '200' status

info	[response-optional-property-added] at head/openapi/specs/v1.yaml	
	in API GET /api/v1/userlists/{userlist_id}/items/{id}/
		added the optional property 'resource/allOf[#/components/schemas/LearningResource]/oneOf[#/components/schemas/VideoResource]/content_files/items/direct_learning_resource_id' to the response with the '200' status

info	[response-optional-property-became-read-only] at head/openapi/specs/v1.yaml	
	in API GET /api/v1/userlists/{userlist_id}/items/{id}/
		the response optional property 'resource/allOf[#/components/schemas/LearningResource]/oneOf[#/components/schemas/DocumentResource]/description' became read-only for the status '200'

info	[response-optional-property-became-read-only] at head/openapi/specs/v1.yaml	
	in API GET /api/v1/userlists/{userlist_id}/items/{id}/
		the response optional property 'resource/allOf[#/components/schemas/LearningResource]/oneOf[#/components/schemas/VideoResource]/description' became read-only for the status '200'

info	[response-property-became-required] at head/openapi/specs/v1.yaml	
	in API GET /api/v1/userlists/{userlist_id}/items/{id}/
		the response property 'resource/allOf[#/components/schemas/LearningResource]/oneOf[#/components/schemas/DocumentResource]/description' became required for the status '200'

info	[response-property-became-required] at head/openapi/specs/v1.yaml	
	in API GET /api/v1/userlists/{userlist_id}/items/{id}/
		the response property 'resource/allOf[#/components/schemas/LearningResource]/oneOf[#/components/schemas/VideoResource]/description' became required for the status '200'

info	[response-optional-property-added] at head/openapi/specs/v1.yaml	
	in API PATCH /api/v1/userlists/{userlist_id}/items/{id}/
		added the optional property 'resource/allOf[#/components/schemas/LearningResource]/oneOf[#/components/schemas/DocumentResource]/content_files/items/direct_learning_resource_id' to the response with the '200' status

info	[response-optional-property-added] at head/openapi/specs/v1.yaml	
	in API PATCH /api/v1/userlists/{userlist_id}/items/{id}/
		added the optional property 'resource/allOf[#/components/schemas/LearningResource]/oneOf[#/components/schemas/VideoResource]/content_files/items/direct_learning_resource_id' to the response with the '200' status

info	[response-optional-property-became-read-only] at head/openapi/specs/v1.yaml	
	in API PATCH /api/v1/userlists/{userlist_id}/items/{id}/
		the response optional property 'resource/allOf[#/components/schemas/LearningResource]/oneOf[#/components/schemas/DocumentResource]/description' became read-only for the status '200'

info	[response-optional-property-became-read-only] at head/openapi/specs/v1.yaml	
	in API PATCH /api/v1/userlists/{userlist_id}/items/{id}/
		the response optional property 'resource/allOf[#/components/schemas/LearningResource]/oneOf[#/components/schemas/VideoResource]/description' became read-only for the status '200'

info	[response-property-became-required] at head/openapi/specs/v1.yaml	
	in API PATCH /api/v1/userlists/{userlist_id}/items/{id}/
		the response property 'resource/allOf[#/components/schemas/LearningResource]/oneOf[#/components/schemas/DocumentResource]/description' became required for the status '200'

info	[response-property-became-required] at head/openapi/specs/v1.yaml	
	in API PATCH /api/v1/userlists/{userlist_id}/items/{id}/
		the response property 'resource/allOf[#/components/schemas/LearningResource]/oneOf[#/components/schemas/VideoResource]/description' became required for the status '200'

info	[response-optional-property-added] at head/openapi/specs/v1.yaml	
	in API GET /api/v1/video_playlists/{learning_resource_id}/items/
		added the optional property 'results/items/resource/allOf[#/components/schemas/LearningResource]/oneOf[#/components/schemas/DocumentResource]/content_files/items/direct_learning_resource_id' to the response with the '200' status

info	[response-optional-property-added] at head/openapi/specs/v1.yaml	
	in API GET /api/v1/video_playlists/{learning_resource_id}/items/
		added the optional property 'results/items/resource/allOf[#/components/schemas/LearningResource]/oneOf[#/components/schemas/VideoResource]/content_files/items/direct_learning_resource_id' to the response with the '200' status

info	[response-optional-property-became-read-only] at head/openapi/specs/v1.yaml	
	in API GET /api/v1/video_playlists/{learning_resource_id}/items/
		the response optional property 'results/items/resource/allOf[#/components/schemas/LearningResource]/oneOf[#/components/schemas/DocumentResource]/description' became read-only for the status '200'

info	[response-optional-property-became-read-only] at head/openapi/specs/v1.yaml	
	in API GET /api/v1/video_playlists/{learning_resource_id}/items/
		the response optional property 'results/items/resource/allOf[#/components/schemas/LearningResource]/oneOf[#/components/schemas/VideoResource]/description' became read-only for the status '200'

info	[response-property-became-required] at head/openapi/specs/v1.yaml	
	in API GET /api/v1/video_playlists/{learning_resource_id}/items/
		the response property 'results/items/resource/allOf[#/components/schemas/LearningResource]/oneOf[#/components/schemas/DocumentResource]/description' became required for the status '200'

info	[response-property-became-required] at head/openapi/specs/v1.yaml	
	in API GET /api/v1/video_playlists/{learning_resource_id}/items/
		the response property 'results/items/resource/allOf[#/components/schemas/LearningResource]/oneOf[#/components/schemas/VideoResource]/description' became required for the status '200'

info	[response-optional-property-added] at head/openapi/specs/v1.yaml	
	in API GET /api/v1/video_playlists/{learning_resource_id}/items/{id}/
		added the optional property 'resource/allOf[#/components/schemas/LearningResource]/oneOf[#/components/schemas/DocumentResource]/content_files/items/direct_learning_resource_id' to the response with the '200' status

info	[response-optional-property-added] at head/openapi/specs/v1.yaml	
	in API GET /api/v1/video_playlists/{learning_resource_id}/items/{id}/
		added the optional property 'resource/allOf[#/components/schemas/LearningResource]/oneOf[#/components/schemas/VideoResource]/content_files/items/direct_learning_resource_id' to the response with the '200' status

info	[response-optional-property-became-read-only] at head/openapi/specs/v1.yaml	
	in API GET /api/v1/video_playlists/{learning_resource_id}/items/{id}/
		the response optional property 'resource/allOf[#/components/schemas/LearningResource]/oneOf[#/components/schemas/DocumentResource]/description' became read-only for the status '200'

info	[response-optional-property-became-read-only] at head/openapi/specs/v1.yaml	
	in API GET /api/v1/video_playlists/{learning_resource_id}/items/{id}/
		the response optional property 'resource/allOf[#/components/schemas/LearningResource]/oneOf[#/components/schemas/VideoResource]/description' became read-only for the status '200'

info	[response-property-became-required] at head/openapi/specs/v1.yaml	
	in API GET /api/v1/video_playlists/{learning_resource_id}/items/{id}/
		the response property 'resource/allOf[#/components/schemas/LearningResource]/oneOf[#/components/schemas/DocumentResource]/description' became required for the status '200'

info	[response-property-became-required] at head/openapi/specs/v1.yaml	
	in API GET /api/v1/video_playlists/{learning_resource_id}/items/{id}/
		the response property 'resource/allOf[#/components/schemas/LearningResource]/oneOf[#/components/schemas/VideoResource]/description' became required for the status '200'

info	[response-optional-property-added] at head/openapi/specs/v1.yaml	
	in API GET /api/v1/videos/
		added the optional property 'results/items/content_files/items/direct_learning_resource_id' to the response with the '200' status

info	[response-optional-property-became-read-only] at head/openapi/specs/v1.yaml	
	in API GET /api/v1/videos/
		the response optional property 'results/items/description' became read-only for the status '200'

info	[response-property-became-required] at head/openapi/specs/v1.yaml	
	in API GET /api/v1/videos/
		the response property 'results/items/description' became required for the status '200'

info	[response-optional-property-added] at head/openapi/specs/v1.yaml	
	in API GET /api/v1/videos/{id}/
		added the optional property 'content_files/items/direct_learning_resource_id' to the response with the '200' status

info	[response-optional-property-became-read-only] at head/openapi/specs/v1.yaml	
	in API GET /api/v1/videos/{id}/
		the response optional property 'description' became read-only for the status '200'

info	[response-property-became-required] at head/openapi/specs/v1.yaml	
	in API GET /api/v1/videos/{id}/
		the response property 'description' became required for the status '200'


Unexpected changes? Ensure your branch is up-to-date with main (consider rebasing).

Comment on lines +1128 to +1130
direct_learning_resource_id = serializers.IntegerField(
source="direct_learning_resource.id", required=False, allow_null=True
)
Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Bug: The direct_learning_resource_id field uses a dotted source direct_learning_resource.id but lacks a default value, which can cause an AttributeError when direct_learning_resource is None.
Severity: HIGH

Suggested Fix

Add default=None to the direct_learning_resource_id field definition in ContentFileSerializer. This ensures that DRF will correctly handle cases where the intermediate direct_learning_resource object is None without raising an exception.

Prompt for AI Agent
Review the code at the location below. A potential bug has been identified by an AI
agent.
Verify if this is a real issue. If it is, propose a fix; if not, explain why it's not
valid.

Location: learning_resources/serializers.py#L1128-L1130

Potential issue: The `ContentFileSerializer` defines `direct_learning_resource_id` with
`source="direct_learning_resource.id"`. The related `ContentFile` model allows
`direct_learning_resource` to be `None`. When serializing a `ContentFile` instance where
this foreign key is `None`, Django REST Framework will attempt to access `.id` on a
`None` object, raising an `AttributeError`. The use of `allow_null=True` without an
explicit `default=None` is insufficient to prevent this error with a dotted source path.
This will cause API endpoints that serialize these objects to fail.

Did we get this right? 👍 / 👎 to inform future reviews.

Comment on lines 459 to +462

all_filter_clauses[filter_name] = {"bool": {"should": clauses_for_filter}}

if search_params.get("endpoint") == LEARNING_RESOURCE and not search_params.get(
Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Bug: The implicit show_ocw_files filter is incorrectly applied to aggregation queries, causing aggregation counts to be silently filtered and therefore inaccurate.
Severity: MEDIUM

Suggested Fix

Modify generate_aggregation_clauses to explicitly exclude the filter generated by show_ocw_files from the other_filters list that is applied to aggregation buckets. This will ensure aggregation counts reflect the total dataset, independent of this display-oriented filter.

Prompt for AI Agent
Review the code at the location below. A potential bug has been identified by an AI
agent.
Verify if this is a real issue. If it is, propose a fix; if not, explain why it's not
valid.

Location: learning_resources_search/api.py#L459-L462

Potential issue: In the search API, the `show_ocw_files` parameter, which defaults to
`False`, generates a filter clause. This clause is incorrectly included when calculating
aggregation counts for other facets (like `resource_type`). As a result, when a user
performs a search without explicitly setting `show_ocw_files=True`, the aggregation
counts will be silently and incorrectly reduced, as they will exclude certain OCW
resources. This provides misleading information to the user about the total number of
available resources for each aggregation bucket.

Did we get this right? 👍 / 👎 to inform future reviews.

@odlbot odlbot merged commit cfcd92a into release Mar 10, 2026
17 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants