Is there an existing issue for this?
Current behavior
Environment
- Plane edition: Community Edition
- Deployment: Self-hosted
- Setup: Docker Compose
- Version: v1.3.1
Current behavior
When creating an intake issue through the API on Plane Community self-hosted using only name, description, and priority, the plain text description does not render correctly in the UI.
The intake issue is created successfully, and the title/priority are saved correctly. However, the description is not displayed as expected in the Plane UI.
Looking at the database, the plain string sent in issue.description appears to be stored in description_json, while the renderable description fields such as description_html and description_stripped remain empty/default.
Example observed result:
description_json = "Description created via API to validate the Intake"
description_html = "<p></p>"
description_stripped = ""
When creating an intake issue manually through the UI, description_json remains as {} and the description is rendered correctly through the appropriate description fields.
Expected behavior
When creating an intake issue through the documented API payload, a plain string passed as issue.description should render correctly in the Plane UI.
For plain text descriptions, the API should not store the string directly as description_json. Instead, it should keep description_json as an object, for example {}, and populate the renderable/plain description fields accordingly.
Expected result:
description_json = {}
description_html = "<p>Description created via API to validate the Intake</p>"
description_stripped = "Description created via API to validate the Intake"
If description is provided as a structured object/list, or if description_json is provided explicitly, the existing structured description behavior should be preserved.
Steps to reproduce
Steps to reproduce
-
Run Plane Community Edition self-hosted using Docker Compose.
-
Create an intake issue through the API using only name, description, and priority:
curl -X POST \
"https://<domain>/api/v1/workspaces/<workspace_slug>/projects/<project_id>/intake-issues/" \
-H "X-API-Key: <api_key>" \
-H "Content-Type: application/json" \
-d '{
"issue": {
"name": "API test",
"description": "Description created via API to validate the Intake",
"priority": "medium"
}
}'
-
Open the created intake issue in the Plane UI.
-
Check whether the description is displayed.
-
Optionally, inspect the created issue in the database and compare description_json, description_html, and description_stripped.
Additional context
The documented API example allows sending description as part of the issue payload when creating an intake issue.
The behavior seems to happen because the intake creation flow accepts both description and description_json, but a plain string passed as description can end up being assigned to description_json instead of being converted into renderable HTML/plain text fields.
Environment
Production
Browser
Google Chrome
Variant
Self-hosted
Version
v1.3.1
Is there an existing issue for this?
Current behavior
Environment
Current behavior
When creating an intake issue through the API on Plane Community self-hosted using only
name,description, andpriority, the plain textdescriptiondoes not render correctly in the UI.The intake issue is created successfully, and the title/priority are saved correctly. However, the description is not displayed as expected in the Plane UI.
Looking at the database, the plain string sent in
issue.descriptionappears to be stored indescription_json, while the renderable description fields such asdescription_htmlanddescription_strippedremain empty/default.Example observed result:
description_json = "Description created via API to validate the Intake"description_html = "<p></p>"description_stripped = ""When creating an intake issue manually through the UI,
description_jsonremains as{}and the description is rendered correctly through the appropriate description fields.Expected behavior
When creating an intake issue through the documented API payload, a plain string passed as
issue.descriptionshould render correctly in the Plane UI.For plain text descriptions, the API should not store the string directly as
description_json. Instead, it should keepdescription_jsonas an object, for example{}, and populate the renderable/plain description fields accordingly.Expected result:
description_json = {}description_html = "<p>Description created via API to validate the Intake</p>"description_stripped = "Description created via API to validate the Intake"If
descriptionis provided as a structured object/list, or ifdescription_jsonis provided explicitly, the existing structured description behavior should be preserved.Steps to reproduce
Steps to reproduce
Run Plane Community Edition self-hosted using Docker Compose.
Create an intake issue through the API using only
name,description, andpriority:Open the created intake issue in the Plane UI.
Check whether the description is displayed.
Optionally, inspect the created issue in the database and compare
description_json,description_html, anddescription_stripped.Additional context
The documented API example allows sending
descriptionas part of theissuepayload when creating an intake issue.The behavior seems to happen because the intake creation flow accepts both
descriptionanddescription_json, but a plain string passed asdescriptioncan end up being assigned todescription_jsoninstead of being converted into renderable HTML/plain text fields.Environment
Production
Browser
Google Chrome
Variant
Self-hosted
Version
v1.3.1