Bugs Found in Workdeck SaaS

Workdeck

Workdeck is an all-in-one platform designed to streamline workflows and boost productivity. The service combines everyday work tools to improve coordination and ease of use.

Workdeck’s comprehensive functionality includes real-time collaboration tools, a shared workspace, task management, meeting scheduling, and integrated storage to meet modern business needs. It also supports remote teams by fostering connection and communication across borders.

The QAwerk team conducted a thorough bug crawl of Workdeck and found several issues, mostly related to error messaging. We invite you to review our findings and gain a deeper understanding of the platform’s functionality.

‘Timesheet’ checkbox triggers schema validation error

Severity:

Critical

Precondition:
  1. The user is logged in to the app.
  2. The user is editing an existing project.
Steps to Reproduce:

Mark the ‘Timesheet checkbox.

Environment:

Google Chrome Version 152.0.7977.83
Firefox 155.0.1
Edge Version 153.0.4234.32

Actual Result:

When the user marks the ‘Timesheet’ checkbox, the API call fails with 409 Conflict. The frontend displays a raw, unformatted validation error message: ‘Invalid value “true” supplied to … timesheet: number …’

Expected Result:

Checking the ‘Timesheet’ box should save that setting on the project; no errors should be displayed.

‘Timesheet’ checkbox triggers schema validation error

User whose account was deleted mid-session sees raw ‘Unexpected error’ (501) instead of being logged out

Severity:

Critical

Precondition:
  1. User 1 (admin) creates a new account named ‘User 2’ on the ‘Users’ tab.
  2. User 2 then logs in and has an active session.
Steps to Reproduce:
  1. Navigate to the ‘Settings’ section as User 1,
  2. Switch to the ‘Users’ tab.
  3. Open ‘User 2 Details’.
  4. Click the ‘Delete User’ button.
  5. As User 2 (still in the active session), perform any action in the app.
Environment:

Google Chrome Version 152.0.7977.83
Firefox 155.0.1
Edge Version 153.0.4234.32

Actual Result:

A raw error message appears: ‘Error! Unexpected error’.
Console shows: GET https://api.workdeck.com/quer… [HTTP/1.1 501 Not Implemented]
Response body: { _type: “NOT_IMPLEMENTED”, _updatedAt: …, _validationErrors: undefined, _dbErrors: [1] […], _mockErrors: undefined, _code: 501 }.

Expected Result:

The moment the backend detects the session belongs to a deleted/nonexistent user, the app should gracefully log the user out and redirect to the Login screen.

User whose account was deleted mid-session sees raw ‘Unexpected error’ (501) instead of being logged out

Clicking ‘Close’ button on task navigates to malformed/double-encoded URL, resulting in 404 page

Severity:

Critical

Precondition:

The user is logged in to the app.

Steps to Reproduce:
  1. Navigate to the ‘Time’ tab.
  2. Navigate to the ‘My Calendar’ tab.
  3. Click the ‘Here’ link in the new task creation section.
  4. Verify that the user is redirected to the ‘My tasks’ tab.
  5. Fill in the required fields, e.g., ‘Task title’.
  6. Click the ‘Save’ button.
  7. Click the ‘Close’ button.
Environment:

Google Chrome Version 152.0.7977.83
Firefox 155.0.1
Edge Version 153.0.4234.32

Actual Result:

After clicking the ‘Close’ button, the browser navigates to a malformed URL with encoded query parameters embedded in the path. The page renders a generic 404 error message: ‘Sorry, the page you requested was not found.’ The console shows accompanying errors: ObjectUnsubscribedError (×2), io client disconnect.

Expected Result:

Clicking the ‘Close’ button should return the user to the ‘My Calendar’ screen they came from, with a valid, correctly formatted URL.

‘Travel Profile’ tab shows ‘Entity Not Found’ error message and fails to load

Severity:

Critical

Precondition:

The user is logged in to the app.

Steps to Reproduce:
  1. Navigate to the ‘My Profile’ section.
  2. Switch to the ‘Travel Profile’ tab.
Environment:

Google Chrome Version 152.0.7977.83
Firefox 155.0.1
Edge Version 153.0.4234.32

Actual Result:

Red error message appears: ‘Error! Entity not found’. Page content area remains blank.

Expected Result:

The ‘Travel Profile’ tab should load without errors, showing either your existing travel details or a clear message inviting you to set them up.

‘Travel Profile’ tab shows ‘Entity Not Found’ error message and fails to load

Published project still shows ‘Activate Projects’ option, which produces no visible effect when clicked

Severity:

Major

Precondition:
  1. The user is logged in to the app.
  2. A published project exists.
Steps to Reproduce:
  1. Navigate to the ‘Work’ tab.
  2. Verify that the ‘Project’ tab is open.
  3. Select the ‘Active projects’ filter.
  4. Mark an active project.
  5. Check the action buttons displayed after you select the checkbox.
  6. Click the ‘Activate Projects’ button.
Environment:

Google Chrome Version 152.0.7977.83
Firefox 155.0.1
Edge Version 153.0.4234.32

Actual Result:

The ‘Activate Projects’ action is displayed for an already activated project. Clicking the button produces no reaction, error, or confirmation. ‘Activate/Deactivate’ buttons disappear entirely from the screen with no explanation.

Expected Result:

The ‘Activate Project’ button should not appear for an already activated project.

Clicking ‘Create Policy’ with empty ‘Policy Name’ sends duplicate API requests and shows raw ‘Invalid request’ error message instead of field validation

Severity:

Major

Precondition:

The user is logged in to the app.

Steps to Reproduce:
  1. Navigate to ‘Settings’ → ‘Policies’.
  2. Open the ‘New Expense Policy’.
  3. Leave the ‘Policy Name’ field empty.
  4. Set an ‘Approval Setting’ value (e.g., 10 EUR).
  5. Click the ‘Create Policy’ button.
  6. Observe the result.
Environment:

Google Chrome Version 152.0.7977.83
Firefox 155.0.1
Edge Version 153.0.4234.32

Actual Result:

Two identical POST requests are sent, both returning 400 (Bad Request) with {_type: ‘INVALID_REQUEST’, …}.
Two duplicate ‘Error! Invalid request’ error messages stack on screen. The error message gives no indication that the issue is specifically the missing ‘Policy Name’, so the user must guess the cause.

Expected Result:

The system should catch the missing ‘Policy Name’ immediately and stop the form from submitting, showing a clear message next to the field (e.g., ‘Policy Name is required’) so the user knows exactly what to fix.

Clicking ‘Create Policy’ with empty ‘Policy Name’ sends duplicate API requests and shows raw ‘Invalid request’ error message instead of field validation

Warning message on ‘Allocated-Task hours’ field is unreadable (shows raw untranslated key instead of guidance)

Severity:

Major

Precondition:
  1. The user is logged in to the app.
  2. A task has been created.
Steps to Reproduce:
  1. Navigate to an existing task.
  2. Enter an ‘Allocated-task hours’ value next to the ‘Form/To’ fields.
  3. Set the ‘Allocated-Task hours’ field (left side) to a value lower than the ‘Allocated hours’ already set for a participant (right side).
  4. Hover over the red hint that appears next to the ‘Allocated-Task hours’ field.
Environment:

Google Chrome Version 152.0.7977.83
Firefox 155.0.1
Edge Version 153.0.4234.32

Actual Result:

The following text of the hint is displayed:
‘work.projects.edit.mainDetails.allocatedHoursWarni’.

Expected Result:

The warning message should display readable, human-friendly text explaining the issue.

Warning message on ‘Allocated-Task hours’ field is unreadable (shows raw untranslated key instead of guidance)

‘Undo changes’ confirmation dialog appears upon canceling, even when no changes were made to project

Severity:

Minor

Precondition:
  1. The user is logged in to the app.
  2. The user has created a project.
Steps to Reproduce:
  1. Open an existing project.
  2. Click the ‘Edit Project’ button.
  3. Don’t make any changes.
  4. Click the ‘Cancel’ button.
Environment:

Google Chrome Version 152.0.7977.83
Firefox 155.0.1
Edge Version 153.0.4234.32

Actual Result:

A confirmation modal appears: ‘Undo ‘Qawerk Test Project’ — Are you sure you want to undo the changes to ‘Qawerk Test Project’?’ with the ‘Cancel/Accept’ options, even though no changes were made.

Expected Result:

Since no changes were made, clicking the ‘Cancel’ button should close the edit view immediately with no confirmation prompt (nothing to discard/undo).

No highlight in red and no validation message next to empty required ‘Telephone’ field

Severity:

Minor

Precondition:

The user is on the ‘Free Trial’ signup form.

Steps to Reproduce:
  1. Leave the ‘Telephone’ field empty.
  2. Click the ‘Send’ button.
Environment:

Google Chrome Version 152.0.7977.83
Firefox 155.0.1
Edge Version 153.0.4234.32

Actual Result:

The ‘Telephone’ field remains with a plain grey/default border, and no error message is displayed.

Expected Result:

Since ‘Telephone’ is marked as a required (*) field, it should be highlighted with the same red error outline as the other empty required fields (e.g., Mail, Your company, Your company sector, Number employees) when the form fails validation.

No highlight in red and no validation message next to empty required ‘Telephone’ field
Overall, testing Workdeck went well — the app is functional and the core logic behind projects, tasks, and time tracking is solid. Most of the issues I found relate to unclear error messaging. I would recommend improving how the app guides and communicates with users overall. I also suggest regression testing at this stage to help catch any remaining gaps.
Tetiana, QA engineer

Tetiana, QA engineer

Need a reliable QA partner?

Hire us