diff --git a/server/tm/errors.go b/server/tm/errors.go
new file mode 100644
index 0000000..55dd037
--- /dev/null
+++ b/server/tm/errors.go
@@ -0,0 +1,47 @@
+package tm
+
+import (
+	"errors"
+	"fmt"
+)
+
+// Common task management errors
+var (
+	ErrTaskNotFound         = errors.New("task not found")
+	ErrOwnerNotFound        = errors.New("owner not found")
+	ErrInvalidTaskStatus    = errors.New("invalid task status")
+	ErrInvalidTaskPriority  = errors.New("invalid task priority")
+	ErrTaskAlreadyCompleted = errors.New("task is already completed")
+	ErrTaskAlreadyArchived  = errors.New("task is already archived")
+	ErrTaskNotStarted       = errors.New("task is not started")
+	ErrTaskNotInProgress    = errors.New("task is not in progress")
+	ErrInvalidOwner         = errors.New("invalid owner")
+	ErrInvalidTaskData      = errors.New("invalid task data")
+)
+
+// TaskError represents a task-specific error with additional context
+type TaskError struct {
+	TaskID string
+	Op     string
+	Err    error
+}
+
+func (e *TaskError) Error() string {
+	if e.TaskID != "" {
+		return fmt.Sprintf("task %s: %s: %v", e.TaskID, e.Op, e.Err)
+	}
+	return fmt.Sprintf("%s: %v", e.Op, e.Err)
+}
+
+func (e *TaskError) Unwrap() error {
+	return e.Err
+}
+
+// NewTaskError creates a new TaskError
+func NewTaskError(taskID, op string, err error) *TaskError {
+	return &TaskError{
+		TaskID: taskID,
+		Op:     op,
+		Err:    err,
+	}
+}
