Skip to content
This repository was archived by the owner on Feb 28, 2026. It is now read-only.
This repository was archived by the owner on Feb 28, 2026. It is now read-only.

Unable to execute Aggregate query with Lookup  #68

Description

@prashantkhandelwal

I tried executing the below query from the IDE and it is panicking. The query works fine in Mongo console and when testing with other IDEs.

db.credits.aggregate([{$lookup:{from: "movies", localField: "id", foreignField: "id", as: "results"}}])

Here is the panic output in console.

2023/01/16 18:32:02 [Recovery] 2023/01/16 - 18:32:02 panic recovered:
POST /api/v1/query/run HTTP/1.1
Host: localhost:22022
Accept: application/json, text/plain, */*
Accept-Encoding: gzip, deflate, br
Accept-Language: en-US,en
Connection: keep-alive
Content-Length: 181
Content-Type: text/json
Origin: http://localhost:3000
Referer: http://localhost:3000/
Sec-Fetch-Dest: empty
Sec-Fetch-Mode: cors
Sec-Fetch-Site: same-site
Sec-Gpc: 1
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/109.0.0.0 Safari/537.36


runtime error: index out of range [0] with length 0
c:/go/src/runtime/panic.go:89 (0x7ff6e60a5d7e)
        goPanicIndex: panic(boundsError{x: int64(x), signed: true, y: y, code: boundsIndex})
X:/Github/slashbase/pkg/queryengines/mongoqueryengine/queryengine.go:280 (0x7ff6e66ce0ae)
        (*MongoQueryEngine).RunQuery: Aggregate(context.Background(), queryType.Args[0])
X:/Github/slashbase/pkg/queryengines/queryengines.go:23 (0x7ff6e6b5410e)
        RunQuery: return mongoQueryEngine.RunQuery(dbConn, query, config)
X:/Github/slashbase/internal/controllers/query.go:23 (0x7ff6e6ea8607)
        QueryController.RunQuery: data, err := queryengines.RunQuery(dbConn.ToQEConnection(), query, getQueryConfigsForProjectMember(dbConn))
X:/Github/slashbase/internal/handlers/query.go:25 (0x7ff6e6eadd44)
        QueryHandlers.RunQuery: data, err := queryController.RunQuery(runBody.DBConnectionID, runBody.Query)
C:/Users/prash/go/pkg/mod/github.com/gin-gonic/gin@v1.7.4/context.go:165 (0x7ff6e6e9c701)
        (*Context).Next: c.handlers[c.index](c)
C:/Users/prash/go/pkg/mod/github.com/gin-gonic/gin@v1.7.4/recovery.go:99 (0x7ff6e6e9c6ec)
        CustomRecoveryWithWriter.func1: c.Next()
C:/Users/prash/go/pkg/mod/github.com/gin-gonic/gin@v1.7.4/context.go:165 (0x7ff6e6e9b57d)
        (*Context).Next: c.handlers[c.index](c)
C:/Users/prash/go/pkg/mod/github.com/gin-gonic/gin@v1.7.4/gin.go:489 (0x7ff6e6e9b205)
        (*Engine).handleHTTPRequest: c.Next()
C:/Users/prash/go/pkg/mod/github.com/gin-gonic/gin@v1.7.4/gin.go:445 (0x7ff6e6e9ad64)
        (*Engine).ServeHTTP: engine.handleHTTPRequest(c)
c:/go/src/net/http/server.go:2916 (0x7ff6e657bdfa)
        serverHandler.ServeHTTP: handler.ServeHTTP(rw, req)
c:/go/src/net/http/server.go:1966 (0x7ff6e6576df6)
        (*conn).serve: serverHandler{c.server}.ServeHTTP(w, w.req)
c:/go/src/runtime/asm_amd64.s:1571 (0x7ff6e60d5a60)
        goexit: BYTE    $0x90   // NOP

I found the problem to be in this function mongoutils.IsQueryTypeRead(queryType) where the query.Args is having 0 elements and therefore panicking. I suppress the panic here but when it gets back in the queryengine query conditional checks for queryType then it panics there.

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    ⚙️ backendbackend related issue🐞 bugSomething isn't working🔥 criticalIt is a critical issue and need to be fixed asap

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions