Nhiệm vụ: Tìm hiểu lý do tại sao yêu cầu không thực hiện đúng cách qua n8n

Tìm hiểu lý do tại sao yêu cầu không thực hiện đúng cách qua n8n

30.06.2026fi1osof.ru

Tình huống về cơ bản là khá kinh điển, nhưng điều đó không tự động khiến nó trở nên rất đơn giản, bởi vì đây thuộc về loại lỗi logic chứ không phải lỗi kỹ thuật.

Các triệu chứng như sau: trực tiếp qua GraphQL API, yêu cầu hoạt động chính xác và nhận được dữ liệu, nhưng từ n8n thì không. Và điều này rất kỳ lạ, bởi vì theo thiết kế, API không nên phụ thuộc vào việc yêu cầu được thực hiện từ đâu. Thế mà ở đây không có bất kỳ lỗi nào, nhưng phản hồi lại trả về là một mảng rỗng. Nghĩa là đây không phải là lỗi, mà đơn giản là không có dữ liệu. Và điều này vi phạm nghiêm trọng các nguyên tắc đã đề ra.

Ворклоги

Đúng vậy. Đây là vẻ đẹp của nó:

if (currentUser && !currentUser.sudo) {
  result.createdById = currentUser.id
}

AI đã nghĩ gì khi lập trình ra thứ này cơ chứ? Phép màu xuất hiện từ đây: tác nhân (agent) thực hiện yêu cầu lấy bộ đếm thời gian, và nhận lại một mảng rỗng. Tôi thực hiện chính yêu cầu đó, và tôi nhận được dữ liệu. Tôi xóa token xác thực đi, nghĩa là thực hiện yêu cầu này một cách ẩn danh — dữ liệu vẫn có, tức là không có chính sách bảo mật đặc biệt nào được thiết lập cả (và cũng không cần thiết, vì đây là dữ liệu công khai). Thế rồi nó lại nhét thêm điều kiện là nếu bạn không được xác thực, thì bạn có tất cả, còn nếu bạn được xác thực và không phải sudo, thì bạn chỉ nhận được dữ liệu của chính mình. Nói cách khác, cùng một yêu cầu với cùng một dữ liệu lại trả về các tập dữ liệu khác nhau tùy thuộc vào điều kiện nào. Nếu cái AI này mà có tay, chắc tôi bẻ gãy luôn rồi.

Прописал сразу два запроса в одном

query timers {
  me {
    id
  }
  timers(orderBy: { createdAt: desc }, take: 10) {
    id
    startedAt
    stoppedAt
    Task {
      id
      title
      content
      projectId
      WorkLogs {
        id
        content
      }
    }
  }
}

Результат:

[
  {
    "data": {
      "me": {
        "id": "cmkpoyglm0000qm0ope3f11"
      },

      "timers": []
    }
  }
]

Вот это и есть странно. То есть данные пользователя получает, а таймеры нет. Предполагаю, что ИИ-агент где-то завайбкодил какое-то ненужное условие.