apache / apache/devlake

[Bug][Jenkins connector] Unable to delete data scope for scope with slash into branch name

Chiusa
#9,129 2 commenti 0 reazioni 1 assegnatario Rivendicata da @veetmoradiya3628 Vedi su GitHub
type/bug
Lingua principale
Go
Stelle
3.1k
Fork
808
Merge medio
1g 18h
PR unite (30g)
50

Descrizione

### Search before asking

- [x] I had searched in the [issues](https://github.com/apache/incubator-devlake/issues?q=is%3Aissue) and found no similar issues.

### What happened

When trying to delete a Jenkins data scope that originates from a branch containing a / character in its name, the deletion fails because the data scope is stored with the branch name URL-encoded.

For example, a branch named: feature/LOY-12394-accesspermission-front-users is registered as loyalty-core/feature%2FLOY-12394-accesspermission-front-users
When attempting to remove the data scope, the connector does not correctly handle the encoded branch name, preventing the data scope from being deleted and showing "operation failed" into UI

### What do you expect to happen

The Jenkins data scope should be removable regardless of whether the original branch name contains special characters such as /

### How to reproduce

- Configure multibranch pipeline into jenkins
Example: loyalty-core
- The job should discover several branches almost one of them should contain symbol /
Example:
-- master
-- develop
-- feature/LOY-12394-accesspermission-front-users
- Configure the Jenkins connector at devlake
- Add data scope selecting job loyalty-core
- Assign scope to project and collect data
- Go to jenkins connection / details. Data scopes should be listed for every branch into job
- Try to delete data scope for loyalty-core/feature%2FLOY-12394-accesspermission-front-users

### Anything else

This is the error into log

```
devlake-1 | time="2026-09-10 14:24:10" level=error msg="HTTP 404 error\n\tcaused by: attached stack trace\n\t -- stack trace:\n\t | github.com/apache/devlake/helpers/srvhelper.(*ModelSrvHelper[...]).FindByPk\n\t | \t/app/helpers/srvhelper/model_service_helper.go:148\n\t | [...repeated from below...]\n\tWraps: (2) *models.JenkinsJob not found (404)\n\tWraps: (3) attached stack trace\n\t -- stack trace:\n\t | github.com/apache/devlake/impls/dalgorm.(*Dalgorm).convertGormError\n\t | \t/app/impls/dalgorm/dalgorm.go:542\n\t | github.com/apache/devlake/impls/dalgorm.(*Dalgorm).First\n\t | \t/app/impls/dalgorm/dalgorm.go:215\n\t | github.com/apache/devlake/helpers/srvhelper.(*ModelSrvHelper[...]).FindByPk\n\t | \t/app/helpers/srvhelper/model_service_helper.go:145\n\t | github.com/apache/devlake/helpers/pluginhelper/api.(*ModelApiHelper[...]).FindByPk\n\t | \t/app/helpers/pluginhelper/api/model_api_helper.go:100\n\t | github.com/apache/devlake/helpers/pluginhelper/api.(*DsScopeApiHelper[...]).Delete\n\t | \t/app/helpers/pluginhelper/api/ds_scope_api_helper.go:135\n\t | github.com/apache/devlake/plugins/jenkins/api.DeleteScope\n\t | \t/app/plugins/jenkins/api/scope_api.go:119\n\t | github.com/apache/devlake/server/api.registerPluginEndpoints.handlePluginCall.func1\n\t | \t/app/server/api/router.go:149\n\t | github.com/gin-gonic/gin.(*Context).Next\n\t | \t/go/pkg/mod/github.com/gin-gonic/gin@v1.9.1/context.go:174\n\t | github.com/apache/devlake/server/api.CreateApiServer.CSRFProtect.(*Service).CSRFProtect.func3\n\t | \t/app/server/api/auth/middleware.go:140\n\t | github.com/gin-gonic/gin.(*Context).Next\n\t | \t/go/pkg/mod/github.com/gin-gonic/gin@v1.9.1/context.go:174\n\t | github.com/apache/devlake/server/api.CreateApiServer.RequireAuth.(*Service).RequireAuth.func2\n\t | \t/app/server/api/auth/middleware.go:104\n\t | github.com/gin-gonic/gin.(*Context).Next\n\t | \t/go/pkg/mod/github.com/gin-gonic/gin@v1.9.1/context.go:174\n\t | github.com/apache/devlake/server/api.OAuth2ProxyAuthentication.func1\n\t | \t/app/server/api/middlewares.go:115\n\t | github.com/gin-gonic/gin.(*Context).Next\n\t | \t/go/pkg/mod/github.com/gin-gonic/gin@v1.9.1/context.go:174\n\t | github.com/apache/devlake/server/api.CreateApiServer.OIDCAuthentication.(*Service).OIDCAuthentication.func1\n\t | \t/app/server/api/auth/middleware.go:61\n\t | github.com/gin-gonic/gin.(*Context).Next\n\t | \t/go/pkg/mod/github.com/gin-gonic/gin@v1.9.1/context.go:174\n\t | github.com/apache/devlake/server/api.RequirePushAuthentication.func1\n\t | \t/app/server/api/middlewares.go:158\n\t | github.com/gin-gonic/gin.(*Context).Next\n\t | \t/go/pkg/mod/github.com/gin-gonic/gin@v1.9.1/context.go:174\n\t | github.com/apache/devlake/server/api.RestAuthentication.func1\n\t | \t/app/server/api/middlewares.go:136\n\t | github.com/gin-gonic/gin.(*Context).Next\n\t | \t/go/pkg/mod/github.com/gin-gonic/gin@v1.9.1/context.go:174\n\t | github.com/gin-gonic/gin.CustomRecoveryWithWriter.func1\n\t | \t/go/pkg/mod/github.com/gin-gonic/gin@v1.9.1/recovery.go:102\n\t | github.com/gin-gonic/gin.(*Context).Next\n\t | \t/go/pkg/mod/github.com/gin-gonic/gin@v1.9.1/context.go:174\n\t | github.com/gin-gonic/gin.LoggerWithConfig.func1\n\t | \t/go/pkg/mod/github.com/gin-gonic/gin@v1.9.1/logger.go:240\n\t | github.com/gin-gonic/gin.(*Context).Next\n\t | \t/go/pkg/mod/github.com/gin-gonic/gin@v1.9.1/context.go:174\n\t | github.com/gin-gonic/gin.(*Engine).handleHTTPRequest\n\t | \t/go/pkg/mod/github.com/gin-gonic/gin@v1.9.1/gin.go:620\n\t | github.com/gin-gonic/gin.(*Engine).ServeHTTP\n\t | \t/go/pkg/mod/github.com/gin-gonic/gin@v1.9.1/gin.go:576\n\t | net/http.serverHandler.ServeHTTP\n\t | \t/usr/local/go/src/net/http/server.go:3311\n\t | net/http.(*conn).serve\n\t | \t/usr/local/go/src/net/http/server.go:2067\n\t | runtime.goexit\n\t | \t/usr/local/go/src/runtime/asm_amd64.s:1771\n\tWraps: (4) record not found (404)\n\tWraps: (5) record not found\n\tError types: (1) *withstack.withStack (2) *errutil.withPrefix (3) *withstack.withStack (4) *errutil.withPrefix (5) *errors.errorString"
config-ui-1 | 10.89.1.1 - - [10/Sep/2026:14:24:10 +0000] "DELETE /api/plugins/jenkins/connections/1/scopes/loyalty-core/feature%2FLOY-12394-accesspermission-front-users?delete_data_only=false HTTP/1.1" 404 4019 "http://localhost:4000/connections/jenkins/1" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/152.0.0.0 Safari/537.36" "-"
devlake-1 | time="2026-09-10 14:24:10" level=error msg="HTTP 404 error\n\tcaused by: attached stack trace\n\t -- stack trace:\n\t | github.com/apache/devlake/helpers/srvhelper.(*ModelSrvHelper[...]).FindByPk\n\t | \t/app/helpers/srvhelper/model_service_helper.go:148\n\t | [...repeated from below...]\n\tWraps: (2) *models.JenkinsJob not found (404)\n\tWraps: (3) attached stack trace\n\t -- stack trace:\n\t | github.com/apache/devlake/impls/dalgorm.(*Dalgorm).convertGormError\n\t | \t/app/impls/dalgorm/dalgorm.go:542\n\t | github.com/apache/devlake/impls/dalgorm.(*Dalgorm).First\n\t | \t/app/impls/dalgorm/dalgorm.go:215\n\t | github.com/apache/devlake/helpers/srvhelper.(*ModelSrvHelper[...]).FindByPk\n\t | \t/app/helpers/srvhelper/model_service_helper.go:145\n\t | github.com/apache/devlake/helpers/pluginhelper/api.(*ModelApiHelper[...]).FindByPk\n\t | \t/app/helpers/pluginhelper/api/model_api_helper.go:100\n\t | github.com/apache/devlake/helpers/pluginhelper/api.(*DsScopeApiHelper[...]).Delete\n\t | \t/app/helpers/pluginhelper/api/ds_scope_api_helper.go:135\n\t | github.com/apache/devlake/plugins/jenkins/api.DeleteScope\n\t | \t/app/plugins/jenkins/api/scope_api.go:119\n\t | github.com/apache/devlake/server/api.registerPluginEndpoints.handlePluginCall.func1\n\t | \t/app/server/api/router.go:149\n\t | github.com/gin-gonic/gin.(*Context).Next\n\t | \t/go/pkg/mod/github.com/gin-gonic/gin@v1.9.1/context.go:174\n\t | github.com/apache/devlake/server/api.CreateApiServer.CSRFProtect.(*Service).CSRFProtect.func3\n\t | \t/app/server/api/auth/middleware.go:140\n\t | github.com/gin-gonic/gin.(*Context).Next\n\t | \t/go/pkg/mod/github.com/gin-gonic/gin@v1.9.1/context.go:174\n\t | github.com/apache/devlake/server/api.CreateApiServer.RequireAuth.(*Service).RequireAuth.func2\n\t | \t/app/server/api/auth/middleware.go:104\n\t | github.com/gin-gonic/gin.(*Context).Next\n\t | \t/go/pkg/mod/github.com/gin-gonic/gin@v1.9.1/context.go:174\n\t | github.com/apache/devlake/server/api.OAuth2ProxyAuthentication.func1\n\t | \t/app/server/api/middlewares.go:115\n\t | github.com/gin-gonic/gin.(*Context).Next\n\t | \t/go/pkg/mod/github.com/gin-gonic/gin@v1.9.1/context.go:174\n\t | github.com/apache/devlake/server/api.CreateApiServer.OIDCAuthentication.(*Service).OIDCAuthentication.func1\n\t | \t/app/server/api/auth/middleware.go:61\n\t | github.com/gin-gonic/gin.(*Context).Next\n\t | \t/go/pkg/mod/github.com/gin-gonic/gin@v1.9.1/context.go:174\n\t | github.com/apache/devlake/server/api.RequirePushAuthentication.func1\n\t | \t/app/server/api/middlewares.go:158\n\t | github.com/gin-gonic/gin.(*Context).Next\n\t | \t/go/pkg/mod/github.com/gin-gonic/gin@v1.9.1/context.go:174\n\t | github.com/apache/devlake/server/api.RestAuthentication.func1\n\t | \t/app/server/api/middlewares.go:136\n\t | github.com/gin-gonic/gin.(*Context).Next\n\t | \t/go/pkg/mod/github.com/gin-gonic/gin@v1.9.1/context.go:174\n\t | github.com/gin-gonic/gin.CustomRecoveryWithWriter.func1\n\t | \t/go/pkg/mod/github.com/gin-gonic/gin@v1.9.1/recovery.go:102\n\t | github.com/gin-gonic/gin.(*Context).Next\n\t | \t/go/pkg/mod/github.com/gin-gonic/gin@v1.9.1/context.go:174\n\t | github.com/gin-gonic/gin.LoggerWithConfig.func1\n\t | \t/go/pkg/mod/github.com/gin-gonic/gin@v1.9.1/logger.go:240\n\t | github.com/gin-gonic/gin.(*Context).Next\n\t | \t/go/pkg/mod/github.com/gin-gonic/gin@v1.9.1/context.go:174\n\t | github.com/gin-gonic/gin.(*Engine).handleHTTPRequest\n\t | \t/go/pkg/mod/github.com/gin-gonic/gin@v1.9.1/gin.go:620\n\t | github.com/gin-gonic/gin.(*Engine).ServeHTTP\n\t | \t/go/pkg/mod/github.com/gin-gonic/gin@v1.9.1/gin.go:576\n\t | net/http.serverHandler.ServeHTTP\n\t | \t/usr/local/go/src/net/http/server.go:3311\n\t | net/http.(*conn).serve\n\t | \t/usr/local/go/src/net/http/server.go:2067\n\t | runtime.goexit\n\t | \t/usr/local/go/src/runtime/asm_amd64.s:1771\n\tWraps: (4) record not found (404)\n\tWraps: (5) record not found\n\tError types: (1) *withstack.withStack (2) *errutil.withPrefix (3) *withstack.withStack (4) *errutil.withPrefix (5) *errors.errorString"
devlake-1 | time="2026-09-10 14:24:10" level=error msg="HTTP 404 error\n\tcaused by: attached stack trace\n\t -- stack trace:\n\t | github.com/apache/devlake/helpers/srvhelper.(*ModelSrvHelper[...]).FindByPk\n\t | \t/app/helpers/srvhelper/model_service_helper.go:148\n\t | [...repeated from below...]\n\tWraps: (2) *models.JenkinsJob not found (404)\n\tWraps: (3) attached stack trace\n\t -- stack trace:\n\t | github.com/apache/devlake/impls/dalgorm.(*Dalgorm).convertGormError\n\t | \t/app/impls/dalgorm/dalgorm.go:542\n\t | github.com/apache/devlake/impls/dalgorm.(*Dalgorm).First\n\t | \t/app/impls/dalgorm/dalgorm.go:215\n\t | github.com/apache/devlake/helpers/srvhelper.(*ModelSrvHelper[...]).FindByPk\n\t | \t/app/helpers/srvhelper/model_service_helper.go:145\n\t | github.com/apache/devlake/helpers/pluginhelper/api.(*ModelApiHelper[...]).FindByPk\n\t | \t/app/helpers/pluginhelper/api/model_api_helper.go:100\n\t | github.com/apache/devlake/helpers/pluginhelper/api.(*DsScopeApiHelper[...]).Delete\n\t | \t/app/helpers/pluginhelper/api/ds_scope_api_helper.go:135\n\t | github.com/apache/devlake/plugins/jenkins/api.DeleteScope\n\t | \t/app/plugins/jenkins/api/scope_api.go:119\n\t | github.com/apache/devlake/server/api.registerPluginEndpoints.handlePluginCall.func1\n\t | \t/app/server/api/router.go:149\n\t | github.com/gin-gonic/gin.(*Context).Next\n\t | \t/go/pkg/mod/github.com/gin-gonic/gin@v1.9.1/context.go:174\n\t | github.com/apache/devlake/server/api.CreateApiServer.CSRFProtect.(*Service).CSRFProtect.func3\n\t | \t/app/server/api/auth/middleware.go:140\n\t | github.com/gin-gonic/gin.(*Context).Next\n\t | \t/go/pkg/mod/github.com/gin-gonic/gin@v1.9.1/context.go:174\n\t | github.com/apache/devlake/server/api.CreateApiServer.RequireAuth.(*Service).RequireAuth.func2\n\t | \t/app/server/api/auth/middleware.go:104\n\t | github.com/gin-gonic/gin.(*Context).Next\n\t | \t/go/pkg/mod/github.com/gin-gonic/gin@v1.9.1/context.go:174\n\t | github.com/apache/devlake/server/api.OAuth2ProxyAuthentication.func1\n\t | \t/app/server/api/middlewares.go:115\n\t | github.com/gin-gonic/gin.(*Context).Next\n\t | \t/go/pkg/mod/github.com/gin-gonic/gin@v1.9.1/context.go:174\n\t | github.com/apache/devlake/server/api.CreateApiServer.OIDCAuthentication.(*Service).OIDCAuthentication.func1\n\t | \t/app/server/api/auth/middleware.go:61\n\t | github.com/gin-gonic/gin.(*Context).Next\n\t | \t/go/pkg/mod/github.com/gin-gonic/gin@v1.9.1/context.go:174\n\t | github.com/apache/devlake/server/api.RequirePushAuthentication.func1\n\t | \t/app/server/api/middlewares.go:158\n\t | github.com/gin-gonic/gin.(*Context).Next\n\t | \t/go/pkg/mod/github.com/gin-gonic/gin@v1.9.1/context.go:174\n\t | github.com/apache/devlake/server/api.RestAuthentication.func1\n\t | \t/app/server/api/middlewares.go:136\n\t | github.com/gin-gonic/gin.(*Context).Next\n\t | \t/go/pkg/mod/github.com/gin-gonic/gin@v1.9.1/context.go:174\n\t | github.com/gin-gonic/gin.CustomRecoveryWithWriter.func1\n\t | \t/go/pkg/mod/github.com/gin-gonic/gin@v1.9.1/recovery.go:102\n\t | github.com/gin-gonic/gin.(*Context).Next\n\t | \t/go/pkg/mod/github.com/gin-gonic/gin@v1.9.1/context.go:174\n\t | github.com/gin-gonic/gin.LoggerWithConfig.func1\n\t | \t/go/pkg/mod/github.com/gin-gonic/gin@v1.9.1/logger.go:240\n\t | github.com/gin-gonic/gin.(*Context).Next\n\t | \t/go/pkg/mod/github.com/gin-gonic/gin@v1.9.1/context.go:174\n\t | github.com/gin-gonic/gin.(*Engine).handleHTTPRequest\n\t | \t/go/pkg/mod/github.com/gin-gonic/gin@v1.9.1/gin.go:620\n\t | github.com/gin-gonic/gin.(*Engine).ServeHTTP\n\t | \t/go/pkg/mod/github.com/gin-gonic/gin@v1.9.1/gin.go:576\n\t | net/http.serverHandler.ServeHTTP\n\t | \t/usr/local/go/src/net/http/server.go:3311\n\t | net/http.(*conn).serve\n\t | \t/usr/local/go/src/net/http/server.go:2067\n\t | runtime.goexit\n\t | \t/usr/local/go/src/runtime/asm_amd64.s:1771\n\tWraps: (4) record not found (404)\n\tWraps: (5) record not found\n\tError types: (1) *withstack.withStack (2) *errutil.withPrefix (3) *withstack.withStack (4) *errutil.withPrefix (5) *errors.errorString"
devlake-1 | [GIN] 2026/09/10 - 14:24:10 | 404 | 7.769236ms | 10.89.1.39 | DELETE "/plugins/jenkins/connections/1/scopes/loyalty-core/feature/LOY-12394-accesspermission-front-users?delete_data_only=false"
devlake-1 | time="2026-09-10 14:24:10" level=error msg="HTTP 404 error\n\tcaused by: attached stack trace\n\t -- stack trace:\n\t | github.com/apache/devlake/helpers/srvhelper.(*ModelSrvHelper[...]).FindByPk\n\t | \t/app/helpers/srvhelper/model_service_helper.go:148\n\t | [...repeated from below...]\n\tWraps: (2) *models.JenkinsJob not found (404)\n\tWraps: (3) attached stack trace\n\t -- stack trace:\n\t | github.com/apache/devlake/impls/dalgorm.(*Dalgorm).convertGormError\n\t | \t/app/impls/dalgorm/dalgorm.go:542\n\t | github.com/apache/devlake/impls/dalgorm.(*Dalgorm).First\n\t | \t/app/impls/dalgorm/dalgorm.go:215\n\t | github.com/apache/devlake/helpers/srvhelper.(*ModelSrvHelper[...]).FindByPk\n\t | \t/app/helpers/srvhelper/model_service_helper.go:145\n\t | github.com/apache/devlake/helpers/pluginhelper/api.(*ModelApiHelper[...]).FindByPk\n\t | \t/app/helpers/pluginhelper/api/model_api_helper.go:100\n\t | github.com/apache/devlake/helpers/pluginhelper/api.(*DsScopeApiHelper[...]).Delete\n\t | \t/app/helpers/pluginhelper/api/ds_scope_api_helper.go:135\n\t | github.com/apache/devlake/plugins/jenkins/api.DeleteScope\n\t | \t/app/plugins/jenkins/api/scope_api.go:119\n\t | github.com/apache/devlake/server/api.registerPluginEndpoints.handlePluginCall.func1\n\t | \t/app/server/api/router.go:149\n\t | github.com/gin-gonic/gin.(*Context).Next\n\t | \t/go/pkg/mod/github.com/gin-gonic/gin@v1.9.1/context.go:174\n\t | github.com/apache/devlake/server/api.CreateApiServer.CSRFProtect.(*Service).CSRFProtect.func3\n\t | \t/app/server/api/auth/middleware.go:140\n\t | github.com/gin-gonic/gin.(*Context).Next\n\t | \t/go/pkg/mod/github.com/gin-gonic/gin@v1.9.1/context.go:174\n\t | github.com/apache/devlake/server/api.CreateApiServer.RequireAuth.(*Service).RequireAuth.func2\n\t | \t/app/server/api/auth/middleware.go:104\n\t | github.com/gin-gonic/gin.(*Context).Next\n\t | \t/go/pkg/mod/github.com/gin-gonic/gin@v1.9.1/context.go:174\n\t | github.com/apache/devlake/server/api.OAuth2ProxyAuthentication.func1\n\t | \t/app/server/api/middlewares.go:115\n\t | github.com/gin-gonic/gin.(*Context).Next\n\t | \t/go/pkg/mod/github.com/gin-gonic/gin@v1.9.1/context.go:174\n\t | github.com/apache/devlake/server/api.CreateApiServer.OIDCAuthentication.(*Service).OIDCAuthentication.func1\n\t | \t/app/server/api/auth/middleware.go:61\n\t | github.com/gin-gonic/gin.(*Context).Next\n\t | \t/go/pkg/mod/github.com/gin-gonic/gin@v1.9.1/context.go:174\n\t | github.com/apache/devlake/server/api.RequirePushAuthentication.func1\n\t | \t/app/server/api/middlewares.go:158\n\t | github.com/gin-gonic/gin.(*Context).Next\n\t | \t/go/pkg/mod/github.com/gin-gonic/gin@v1.9.1/context.go:174\n\t | github.com/apache/devlake/server/api.RestAuthentication.func1\n\t | \t/app/server/api/middlewares.go:136\n\t | github.com/gin-gonic/gin.(*Context).Next\n\t | \t/go/pkg/mod/github.com/gin-gonic/gin@v1.9.1/context.go:174\n\t | github.com/gin-gonic/gin.CustomRecoveryWithWriter.func1\n\t | \t/go/pkg/mod/github.com/gin-gonic/gin@v1.9.1/recovery.go:102\n\t | github.com/gin-gonic/gin.(*Context).Next\n\t | \t/go/pkg/mod/github.com/gin-gonic/gin@v1.9.1/context.go:174\n\t | github.com/gin-gonic/gin.LoggerWithConfig.func1\n\t | \t/go/pkg/mod/github.com/gin-gonic/gin@v1.9.1/logger.go:240\n\t | github.com/gin-gonic/gin.(*Context).Next\n\t | \t/go/pkg/mod/github.com/gin-gonic/gin@v1.9.1/context.go:174\n\t | github.com/gin-gonic/gin.(*Engine).handleHTTPRequest\n\t | \t/go/pkg/mod/github.com/gin-gonic/gin@v1.9.1/gin.go:620\n\t | github.com/gin-gonic/gin.(*Engine).ServeHTTP\n\t | \t/go/pkg/mod/github.com/gin-gonic/gin@v1.9.1/gin.go:576\n\t | net/http.serverHandler.ServeHTTP\n\t | \t/usr/local/go/src/net/http/server.go:3311\n\t | net/http.(*conn).serve\n\t | \t/usr/local/go/src/net/http/server.go:2067\n\t | runtime.goexit\n\t | \t/usr/local/go/src/runtime/asm_amd64.s:1771\n\tWraps: (4) record not found (404)\n\tWraps: (5) record not found\n\tError types: (1) *withstack.withStack (2) *errutil.withPrefix (3) *withstack.withStack (4) *errutil.withPrefix (5) *errors.errorString"
devlake-1 | time="2026-09-10 14:24:10" level=error msg="HTTP 404 error\n\tcaused by: attached stack trace\n\t -- stack trace:\n\t | github.com/apache/devlake/helpers/srvhelper.(*ModelSrvHelper[...]).FindByPk\n\t | \t/app/helpers/srvhelper/model_service_helper.go:148\n\t | [...repeated from below...]\n\tWraps: (2) *models.JenkinsJob not found (404)\n\tWraps: (3) attached stack trace\n\t -- stack trace:\n\t | github.com/apache/devlake/impls/dalgorm.(*Dalgorm).convertGormError\n\t | \t/app/impls/dalgorm/dalgorm.go:542\n\t | github.com/apache/devlake/impls/dalgorm.(*Dalgorm).First\n\t | \t/app/impls/dalgorm/dalgorm.go:215\n\t | github.com/apache/devlake/helpers/srvhelper.(*ModelSrvHelper[...]).FindByPk\n\t | \t/app/helpers/srvhelper/model_service_helper.go:145\n\t | github.com/apache/devlake/helpers/pluginhelper/api.(*ModelApiHelper[...]).FindByPk\n\t | \t/app/helpers/pluginhelper/api/model_api_helper.go:100\n\t | github.com/apache/devlake/helpers/pluginhelper/api.(*DsScopeApiHelper[...]).Delete\n\t | \t/app/helpers/pluginhelper/api/ds_scope_api_helper.go:135\n\t | github.com/apache/devlake/plugins/jenkins/api.DeleteScope\n\t | \t/app/plugins/jenkins/api/scope_api.go:119\n\t | github.com/apache/devlake/server/api.registerPluginEndpoints.handlePluginCall.func1\n\t | \t/app/server/api/router.go:149\n\t | github.com/gin-gonic/gin.(*Context).Next\n\t | \t/go/pkg/mod/github.com/gin-gonic/gin@v1.9.1/context.go:174\n\t | github.com/apache/devlake/server/api.CreateApiServer.CSRFProtect.(*Service).CSRFProtect.func3\n\t | \t/app/server/api/auth/middleware.go:140\n\t | github.com/gin-gonic/gin.(*Context).Next\n\t | \t/go/pkg/mod/github.com/gin-gonic/gin@v1.9.1/context.go:174\n\t | github.com/apache/devlake/server/api.CreateApiServer.RequireAuth.(*Service).RequireAuth.func2\n\t | \t/app/server/api/auth/middleware.go:104\n\t | github.com/gin-gonic/gin.(*Context).Next\n\t | \t/go/pkg/mod/github.com/gin-gonic/gin@v1.9.1/context.go:174\n\t | github.com/apache/devlake/server/api.OAuth2ProxyAuthentication.func1\n\t | \t/app/server/api/middlewares.go:115\n\t | github.com/gin-gonic/gin.(*Context).Next\n\t | \t/go/pkg/mod/github.com/gin-gonic/gin@v1.9.1/context.go:174\n\t | github.com/apache/devlake/server/api.CreateApiServer.OIDCAuthentication.(*Service).OIDCAuthentication.func1\n\t | \t/app/server/api/auth/middleware.go:61\n\t | github.com/gin-gonic/gin.(*Context).Next\n\t | \t/go/pkg/mod/github.com/gin-gonic/gin@v1.9.1/context.go:174\n\t | github.com/apache/devlake/server/api.RequirePushAuthentication.func1\n\t | \t/app/server/api/middlewares.go:158\n\t | github.com/gin-gonic/gin.(*Context).Next\n\t | \t/go/pkg/mod/github.com/gin-gonic/gin@v1.9.1/context.go:174\n\t | github.com/apache/devlake/server/api.RestAuthentication.func1\n\t | \t/app/server/api/middlewares.go:136\n\t | github.com/gin-gonic/gin.(*Context).Next\n\t | \t/go/pkg/mod/github.com/gin-gonic/gin@v1.9.1/context.go:174\n\t | github.com/gin-gonic/gin.CustomRecoveryWithWriter.func1\n\t | \t/go/pkg/mod/github.com/gin-gonic/gin@v1.9.1/recovery.go:102\n\t | github.com/gin-gonic/gin.(*Context).Next\n\t | \t/go/pkg/mod/github.com/gin-gonic/gin@v1.9.1/context.go:174\n\t | github.com/gin-gonic/gin.LoggerWithConfig.func1\n\t | \t/go/pkg/mod/github.com/gin-gonic/gin@v1.9.1/logger.go:240\n\t | github.com/gin-gonic/gin.(*Context).Next\n\t | \t/go/pkg/mod/github.com/gin-gonic/gin@v1.9.1/context.go:174\n\t | github.com/gin-gonic/gin.(*Engine).handleHTTPRequest\n\t | \t/go/pkg/mod/github.com/gin-gonic/gin@v1.9.1/gin.go:620\n\t | github.com/gin-gonic/gin.(*Engine).ServeHTTP\n\t | \t/go/pkg/mod/github.com/gin-gonic/gin@v1.9.1/gin.go:576\n\t | net/http.serverHandler.ServeHTTP\n\t | \t/usr/local/go/src/net/http/server.go:3311\n\t | net/http.(*conn).serve\n\t | \t/usr/local/go/src/net/http/server.go:2067\n\t | runtime.goexit\n\t | \t/usr/local/go/src/runtime/asm_amd64.s:1771\n\tWraps: (4) record not found (404)\n\tWraps: (5) record not found\n\tError types: (1) *withstack.withStack (2) *errutil.withPrefix (3) *withstack.withStack (4) *errutil.withPrefix (5) *errors.errorString"
devlake-1 | [GIN] 2026/09/10 - 14:24:10 | 404 | 7.769236ms | 10.89.1.39 | DELETE "/plugins/jenkins/connections/1/scopes/loyalty-core/feature/LOY-12394-accesspermission-front-users?delete_data_only=false"
devlake-1 | [GIN] 2026/09/10 - 14:24:10 | 404 | 7.769236ms | 10.89.1.39 | DELETE "/plugins/jenkins/connections/1/scopes/loyalty-core/feature/LOY-12394-accesspermission-front-users?delete_data_only=false"
devlake-1 | [GIN] 2026/09/10 - 14:24:10 | 404 | 7.769236ms | 10.89.1.39 | DELETE "/plugins/jenkins/connections/1/scopes/loyalty-core/feature/LOY-12394-accesspermission-front-users?delete_data_only=false"
devlake-1 | [GIN] 2026/09/10 - 14:24:10 | 404 | 7.769236ms | 10.89.1.39 | DELETE "/plugins/jenkins/connections/1/scopes/loyalty-core/feature/LOY-12394-accesspermission-front-users?delete_data_only=false"
```

### Version

v1.0.3-beta17@8fe26f4

### Are you willing to submit PR?

- [ ] Yes I am willing to submit a PR!

### Code of Conduct

- [x] I agree to follow this project's [Code of Conduct](https://www.apache.org/foundation/policies/conduct)

Guida per i contributori

Nessuna guida per i contributori indicizzata per questo repository

Valutazione

Questa issue non è ancora stata valutata.

Ricevi le nuove issue nella tua casella

Un breve riepilogo di issue GitHub adatte ai principianti.