#14604·gocd

RecordNotFoundException via Rails interfaces when looking up deleted pipeline

Author: chadlwilsonCreated Sep 11, 2026Updated Sep 11, 2026
Labelsstage-overview

When trying to visit a deleted pipeline like https://build.gocd.org/go/pipelines/gocd-contrib-gocd-groovy-dsl-config-plugin-pr/609/test/1 you get a 500 error:

Image
2026-09-11 07:35:09,139 ERROR [Jetty-56] Rails:-1 -
Java::ComThoughtworksGoConfigExceptions::RecordNotFoundException (Pipeline group (lookup by Pipeline with name 'gocd-contrib-gocd-groovy-dsl-config-plugin-pr') was not found!):

com/thoughtworks/go/domain/PipelineGroups.java:116:in `lambda$findGroupByPipeline$0'
com/thoughtworks/go/domain/PipelineGroups.java:116:in `findGroupByPipeline'
com/thoughtworks/go/server/service/GoConfigService.java:325:in `findGroupNameByPipeline'
app/controllers/stages_controller.rb:187:in `can_view_settings?'
app/controllers/stages_controller.rb:168:in `load_stage_details'
com/thoughtworks/go/rackhack/DelegatingServlet.java:46:in `service'
org/eclipse/jetty/servlet/ServletHolder.java:764:in `handle'
org/eclipse/jetty/servlet/ServletHandler.java:1665:in `doFilter'
org/eclipse/jetty/servlet/ServletHandler.java:527:in `doHandle'
org/eclipse/jetty/server/handler/ScopedHandler.java:131:in `handle'
org/eclipse/jetty/security/SecurityHandler.java:616:in `handle'
org/eclipse/jetty/server/handler/HandlerWrapper.java:122:in `handle'
org/eclipse/jetty/server/handler/ScopedHandler.java:223:in `nextHandle'
org/eclipse/jetty/server/session/SessionHandler.java:1580:in `doHandle'
org/eclipse/jetty/server/handler/ScopedHandler.java:131:in `handle'
org/eclipse/jetty/server/handler/HandlerWrapper.java:122:in `handle'
org/eclipse/jetty/server/handler/gzip/GzipHandler.java:680:in `handle'
org/eclipse/jetty/server/handler/HandlerWrapper.java:122:in `handle'
org/eclipse/jetty/server/handler/ScopedHandler.java:223:in `nextHandle'
org/eclipse/jetty/server/handler/ContextHandler.java:1384:in `doHandle'
org/eclipse/jetty/server/handler/ScopedHandler.java:176:in `nextScope'
org/eclipse/jetty/servlet/ServletHandler.java:484:in `doScope'
org/eclipse/jetty/server/session/SessionHandler.java:1553:in `doScope'
org/eclipse/jetty/server/handler/ScopedHandler.java:174:in `nextScope'
org/eclipse/jetty/server/handler/ContextHandler.java:1306:in `doScope'
org/eclipse/jetty/server/handler/ScopedHandler.java:129:in `handle'
org/eclipse/jetty/server/Dispatcher.java:215:in `forward'
org/eclipse/jetty/server/Dispatcher.java:135:in `forward'
org/tuckey/web/filters/urlrewrite/NormalRewrittenUrl.java:213:in `doRewrite'
org/tuckey/web/filters/urlrewrite/RuleChain.java:171:in `handleRewrite'
org/tuckey/web/filters/urlrewrite/RuleChain.java:145:in `doRules'
org/tuckey/web/filters/urlrewrite/UrlRewriter.java:92:in `processRequest'
org/tuckey/web/filters/urlrewrite/UrlRewriteFilter.java:381:in `doFilter'
org/eclipse/jetty/servlet/FilterHolder.java:202:in `doFilter'
org/eclipse/jetty/servlet/ServletHandler.java:1635:in `doFilter'
org/springframework/security/web/FilterChainProxy.java:317:in `doFilter'
com/thoughtworks/go/server/web/FlashLoadingFilter.java:39:in `doFilterInternal'
org/springframework/web/filter/OncePerRequestFilter.java:107:in `doFilter'
org/springframework/security/web/FilterChainProxy.java:331:in `doFilter'
org/springframework/security/web/FilterChainProxy.java:208:in `doFilterInternal'
org/springframework/security/web/FilterChainProxy.java:185:in `doFilter'
org/springframework/security/web/FilterChainProxy.java:331:in `doFilter'
org/springframework/security/web/FilterChainProxy.java:317:in `doFilter'
com/thoughtworks/go/server/newsecurity/filters/DenyIfRefererIsNotFilesFilter.java:53:in `doFilterInternal'
org/springframework/web/filter/OncePerRequestFilter.java:107:in `doFilter'
org/springframework/security/web/FilterChainProxy.java:331:in `doFilter'
org/springframework/security/web/FilterChainProxy.java:214:in `doFilterInternal'
org/springframework/security/web/FilterChainProxy.java:185:in `doFilter'
org/springframework/security/web/FilterChainProxy.java:331:in `doFilter'
org/springframework/security/web/FilterChainProxy.java:317:in `doFilter'
com/thoughtworks/go/server/newsecurity/filters/VerifyAuthorityFilter.java:59:in `doFilterInternal'
org/springframework/web/filter/OncePerRequestFilter.java:107:in `doFilter'
org/springframework/security/web/FilterChainProxy.java:331:in `doFilter'
org/springframework/security/web/FilterChainProxy.java:214:in `doFilterInternal'
org/springframework/security/web/FilterChainProxy.java:185:in `doFilter'
org/springframework/security/web/FilterChainProxy.java:331:in `doFilter'
org/springframework/security/web/FilterChainProxy.java:317:in `doFilter'
com/thoughtworks/go/server/newsecurity/filters/AbstractUserEnabledCheckFilter.java:66:in `doFilterInternal'
org/springframework/web/filter/OncePerRequestFilter.java:107:in `doFilter'
org/springframework/security/web/FilterChainProxy.java:331:in `doFilter'
org/springframework/security/web/FilterChainProxy.java:214:in `doFilterInternal'
org/springframework/security/web/FilterChainProxy.java:185:in `doFilter'
org/springframework/security/web/FilterChainProxy.java:331:in `doFilter'
com/thoughtworks/go/server/newsecurity/filters/ThreadLocalUserFilter.java:43:in `doFilterInternal'
org/springframework/web/filter/OncePerRequestFilter.java:107:in `doFilter'
org/springframework/security/web/FilterChainProxy.java:331:in `doFilter'
org/springframework/security/web/FilterChainProxy.java:317:in `doFilter'
com/thoughtworks/go/server/newsecurity/filters/AbstractBasicAuthenticationFilter.java:89:in `filterWhenSecurityEnabled'
com/thoughtworks/go/server/newsecurity/filters/AbstractBasicAuthenticationFilter.java:68:in `doFilterInternal'
org/springframework/web/filter/OncePerRequestFilter.java:107:in `doFilter'
org/springframework/security/web/FilterChainProxy.java:331:in `doFilter'
com/thoughtworks/go/server/newsecurity/filters/AssumeAnonymousUserFilter.java:66:in `doFilterInternal'
org/springframework/web/filter/OncePerRequestFilter.java:107:in `doFilter'
org/springframework/security/web/FilterChainProxy.java:331:in `doFilter'
com/thoughtworks/go/server/newsecurity/filters/AbstractReAuthenticationFilter.java:74:in `doFilterInternal'
org/springframework/web/filter/OncePerRequestFilter.java:107:in `doFilter'
org/springframework/security/web/FilterChainProxy.java:331:in `doFilter'
com/thoughtworks/go/server/newsecurity/filters/InvalidateAuthenticationOnSecurityConfigChangeFilter.java:106:in `doFilterInternal'
org/springframework/web/filter/OncePerRequestFilter.java:107:in `doFilter'
org/springframework/security/web/FilterChainProxy.java:331:in `doFilter'
org/springframework/security/web/FilterChainProxy.java:214:in `doFilterInternal'
org/springframework/security/web/FilterChainProxy.java:185:in `doFilter'
org/springframework/security/web/FilterChainProxy.java:331:in `doFilter'
org/springframework/security/web/FilterChainProxy.java:317:in `doFilter'
com/thoughtworks/go/server/newsecurity/filters/RememberLastRequestUrlFilter.java:36:in `doFilterInternal'
org/springframework/web/filter/OncePerRequestFilter.java:107:in `doFilter'
org/springframework/security/web/FilterChainProxy.java:331:in `doFilter'
org/springframework/security/web/FilterChainProxy.java:214:in `doFilterInternal'
org/springframework/security/web/FilterChainProxy.java:185:in `doFilter'
org/springframework/security/web/FilterChainProxy.java:331:in `doFilter'
org/springframework/security/web/FilterChainProxy.java:317:in `doFilter'
com/thoughtworks/go/server/newsecurity/filters/AlwaysCreateSessionFilter.java:42:in `doFilterInternal'
org/springframework/web/filter/OncePerRequestFilter.java:107:in `doFilter'
org/springframework/security/web/FilterChainProxy.java:331:in `doFilter'
org/springframework/security/web/FilterChainProxy.java:214:in `doFilterInternal'
org/springframework/security/web/FilterChainProxy.java:185:in `doFilter'
org/springframework/security/web/FilterChainProxy.java:331:in `doFilter'
com/thoughtworks/go/server/newsecurity/filters/ModeAwareFilter.java:75:in `doFilter'
org/springframework/security/web/FilterChainProxy.java:331:in `doFilter'
com/thoughtworks/go/server/web/BackupFilter.java:77:in `doFilterInternal'
org/springframework/web/filter/OncePerRequestFilter.java:107:in `doFilter'
org/springframework/security/web/FilterChainProxy.java:331:in `doFilter'
org/springframework/security/web/FilterChainProxy.java:214:in `doFilterInternal'
org/springframework/security/web/FilterChainProxy.java:177:in `doFilter'
com/thoughtworks/go/server/newsecurity/filterchains/MainFilterChain.java:79:in `doFilter'
org/springframework/web/filter/DelegatingFilterProxy.java:347:in `invokeDelegate'
org/springframework/web/filter/DelegatingFilterProxy.java:263:in `doFilter'
org/eclipse/jetty/servlet/FilterHolder.java:202:in `doFilter'
org/eclipse/jetty/servlet/ServletHandler.java:1635:in `doFilter'
com/thoughtworks/go/server/web/DefaultHeadersFilter.java:47:in `doFilter'
org/eclipse/jetty/servlet/FilterHolder.java:210:in `doFilter'
org/eclipse/jetty/servlet/ServletHandler.java:1635:in `doFilter'
org/eclipse/jetty/servlet/ServletHandler.java:527:in `doHandle'
org/eclipse/jetty/server/handler/ScopedHandler.java:131:in `handle'
org/eclipse/jetty/security/SecurityHandler.java:598:in `handle'
org/eclipse/jetty/server/handler/HandlerWrapper.java:122:in `handle'
org/eclipse/jetty/server/handler/ScopedHandler.java:223:in `nextHandle'
org/eclipse/jetty/server/session/SessionHandler.java:1580:in `doHandle'
org/eclipse/jetty/server/handler/ScopedHandler.java:131:in `handle'
org/eclipse/jetty/server/handler/HandlerWrapper.java:122:in `handle'
org/eclipse/jetty/server/handler/gzip/GzipHandler.java:822:in `handle'
org/eclipse/jetty/server/handler/HandlerWrapper.java:122:in `handle'
org/eclipse/jetty/server/handler/ScopedHandler.java:223:in `nextHandle'
org/eclipse/jetty/server/handler/ContextHandler.java:1384:in `doHandle'
org/eclipse/jetty/server/handler/ScopedHandler.java:176:in `nextScope'
org/eclipse/jetty/servlet/ServletHandler.java:484:in `doScope'
org/eclipse/jetty/server/session/SessionHandler.java:1553:in `doScope'
org/eclipse/jetty/server/handler/ScopedHandler.java:174:in `nextScope'
org/eclipse/jetty/server/handler/ContextHandler.java:1306:in `doScope'
org/eclipse/jetty/server/handler/ScopedHandler.java:129:in `handle'
org/eclipse/jetty/server/handler/ContextHandlerCollection.java:192:in `handle'
org/eclipse/jetty/server/handler/HandlerCollection.java:141:in `handle'
org/eclipse/jetty/server/handler/HandlerWrapper.java:122:in `handle'
org/eclipse/jetty/server/Server.java:563:in `handle'
org/eclipse/jetty/server/HttpChannel.java:1598:in `dispatch'
org/eclipse/jetty/server/HttpChannel.java:753:in `dispatch'
org/eclipse/jetty/server/HttpChannel.java:501:in `handle'
org/eclipse/jetty/server/HttpConnection.java:287:in `onFillable'
org/eclipse/jetty/io/AbstractConnection.java:314:in `succeeded'
org/eclipse/jetty/io/FillInterest.java:100:in `fillable'
org/eclipse/jetty/io/SelectableChannelEndPoint.java:53:in `run'
org/eclipse/jetty/util/thread/strategy/AdaptiveExecutionStrategy.java:421:in `runTask'
org/eclipse/jetty/util/thread/strategy/AdaptiveExecutionStrategy.java:390:in `consumeTask'
org/eclipse/jetty/util/thread/strategy/AdaptiveExecutionStrategy.java:277:in `tryProduce'
org/eclipse/jetty/util/thread/strategy/AdaptiveExecutionStrategy.java:199:in `run'
org/eclipse/jetty/util/thread/ReservedThreadExecutor.java:411:in `run'
org/eclipse/jetty/util/thread/QueuedThreadPool.java:969:in `runJob'
org/eclipse/jetty/util/thread/QueuedThreadPool.java:1194:in `doRunJob'
org/eclipse/jetty/util/thread/QueuedThreadPool.java:1149:in `run'

It should be either a 200 (if the historic details can be found) or a 404 or a 403 (depending on permissions) with the 'normal' 404 or 403 UI rendering if it cannot.

Probably needs findGroupNameByPipelineOptional and some optional handling, or a newer alternative to security_service.isUserAdminOfGroup which both checks admin capability and group presence in config.