400 Error when trying to assign circle to card
Nobody has claimed this yet.
- Dominant language
- JavaScript
- Stars
- 1.4k
- Forks
- 354
- Avg merge
- 1d 10h
- Merged PRs (30d)
- 43
Description
How to use GitHub
- Please use the 👍 reaction to show that you are affected by the same issue.
- Please don't comment if you have no relevant information to add. It's just extra noise for everyone subscribed to this issue.
- Subscribe to receive notifications on status change and new comments.
Describe the bug
Trying to assign a circle to a card returns 400
To Reproduce
- Open any card in deck
- Open assignment menu and select the circle that is the owner of the Deck
- Press return or just click
- -> 400 Error
Expected behavior
As of https://github.com/nextcloud/deck/pull/1629, I believe it should be possible to assign a circle to a card.
Server details
Operating system: Debian 12
Web server: Apache2
Database: 15.1
PHP version: 8.2.28
Nextcloud version: 30.0.11
Where did you install Nextcloud from:
Logs
Nextcloud log (data/nextcloud.log)
{
"Exception": "OCA\\\\Deck\\\\BadRequestException",
"Message": "userId must be provided and must be not empty",
"Code": 0,
"Trace": [
{
"file": "/var/www/nc/nextcloud-30.0.11/apps/deck/lib/Validators/BaseValidator.php",
"line": 66,
"function": "validate",
"class": "OCA\\\\Deck\\\\Validators\\\\BaseValidator",
"type": "->"
},
{
"file": "/var/www/nc/nextcloud-30.0.11/apps/deck/lib/Service/AssignmentService.php",
"line": 91,
"function": "check",
"class": "OCA\\\\Deck\\\\Validators\\\\BaseValidator",
"type": "->"
},
{
"function": "__construct",
"class": "OCA\\\\Deck\\\\Service\\\\AssignmentService",
"type": "->"
},
{
"file": "/var/www/nc/nextcloud-30.0.11/lib/private/AppFramework/Utility/SimpleContainer.php",
"line": 61,
"function": "newInstanceArgs",
"class": "ReflectionClass",
"type": "->"
},
{
"file": "/var/www/nc/nextcloud-30.0.11/lib/private/AppFramework/Utility/SimpleContainer.php",
"line": 106,
"function": "buildClass",
"class": "OC\\\\AppFramework\\\\Utility\\\\SimpleContainer",
"type": "->"
},
{
"file": "/var/www/nc/nextcloud-30.0.11/lib/private/AppFramework/Utility/SimpleContainer.php",
"line": 124,
"function": "resolve",
"class": "OC\\\\AppFramework\\\\Utility\\\\SimpleContainer",
"type": "->"
},
{
"file": "/var/www/nc/nextcloud-30.0.11/lib/private/AppFramework/DependencyInjection/DIContainer.php",
"line": 453,
"function": "query",
"class": "OC\\\\AppFramework\\\\Utility\\\\SimpleContainer",
"type": "->"
},
{
"file": "/var/www/nc/nextcloud-30.0.11/lib/private/AppFramework/DependencyInjection/DIContainer.php",
"line": 425,
"function": "queryNoFallback",
"class": "OC\\\\AppFramework\\\\DependencyInjection\\\\DIContainer",
"type": "->"
},
{
"file": "/var/www/nc/nextcloud-30.0.11/lib/private/AppFramework/Utility/SimpleContainer.php",
"line": 74,
"function": "query",
"class": "OC\\\\AppFramework\\\\DependencyInjection\\\\DIContainer",
"type": "->"
},
{
"function": "OC\\\\AppFramework\\\\Utility\\\\{closure}",
"class": "OC\\\\AppFramework\\\\Utility\\\\SimpleContainer",
"type": "->",
"args": [
"*** sensitive parameters replaced ***"
]
},
{
"file": "/var/www/nc/nextcloud-30.0.11/lib/private/AppFramework/Utility/SimpleContainer.php",
"line": 61,
"function": "array_map"
},
{
"file": "/var/www/nc/nextcloud-30.0.11/lib/private/AppFramework/Utility/SimpleContainer.php",
"line": 106,
"function": "buildClass",
"class": "OC\\\\AppFramework\\\\Utility\\\\SimpleContainer",
"type": "->"
},
{
"file": "/var/www/nc/nextcloud-30.0.11/lib/private/AppFramework/Utility/SimpleContainer.php",
"line": 124,
"function": "resolve",
"class": "OC\\\\AppFramework\\\\Utility\\\\SimpleContainer",
"type": "->"
},
{
"file": "/var/www/nc/nextcloud-30.0.11/lib/private/AppFramework/DependencyInjection/DIContainer.php",
"line": 453,
"function": "query",
"class": "OC\\\\AppFramework\\\\Utility\\\\SimpleContainer",
"type": "->"
},
{
"file": "/var/www/nc/nextcloud-30.0.11/lib/private/AppFramework/DependencyInjection/DIContainer.php",
"line": 425,
"function": "queryNoFallback",
"class": "OC\\\\AppFramework\\\\DependencyInjection\\\\DIContainer",
"type": "->"
},
{
"file": "/var/www/nc/nextcloud-30.0.11/lib/private/AppFramework/App.php",
"line": 140,
"function": "query",
"class": "OC\\\\AppFramework\\\\DependencyInjection\\\\DIContainer",
"type": "->"
},
{
"file": "/var/www/nc/nextcloud-30.0.11/lib/private/Route/Router.php",
"line": 303,
"function": "main",
"class": "OC\\\\AppFramework\\\\App",
"type": "0:0:0:0:0:0:0:0"
},
{
"file": "/var/www/nc/nextcloud-30.0.11/lib/base.php",
"line": 1010,
"function": "match",
"class": "OC\\\\Route\\\\Router",
"type": "->"
},
{
"file": "/var/www/nc/nextcloud-30.0.11/index.php",
"line": 24,
"function": "handleRequest",
"class": "OC",
"type": "0:0:0:0:0:0:0:0"
}
],
"File": "/var/www/nc/nextcloud-30.0.11/apps/deck/lib/Validators/BaseValidator.php",
"Line": 47,
"message": "userId must be provided and must be not empty",
"exception": {},
"CustomMessage": "userId must be provided and must be not empty"
}
Browser log
{"userId":"REDACTED","type":7}
Response:
{"status":400,"message":"Invalid type provided for assignemnt"}
Contributor guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Research direction
Reproduce assigning the Deck owner circle to a card and inspect the request containing userId and type 7. Start with apps/deck/lib/Validators/BaseValidator.php and apps/deck/lib/Service/AssignmentService.php, following the validation path shown in the trace. Done means circle assignment succeeds without a 400 response and the existing invalid-assignment validation remains intact.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- javascript, php
- Domain
- api, backend
- Issue type
- Bug
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Activity status
- Stale
- Clarity
- Mostly clear
- Newbie friendliness
- 35/100