AWS CodeBuild使用CODEBUILD_CLONE_REF时DOWNLOAD_SOURCE阶段报错
问题现象
由CodePipeline调用、配置了CODEBUILD_CLONE_REF环境变量的CodeBuild项目,在构建的DOWNLOAD_SOURCE阶段执行失败,返回如下错误:
Internal Service Error: CodeBuild is experiencing issues
错误触发于源码拉取环节,构建日志无其他明确的权限、配置类报错提示。
常见产生原因
- CodePipeline传递给CodeBuild的源码提交引用无效:对应分支、标签被删除,或者目标提交哈希被强制推送覆盖,CodeBuild拉取时无法定位到对应ref,服务端未返回明确的资源不存在错误,直接抛出通用内部服务报错。
CODEBUILD_CLONE_REF参数值格式错误:参数值多余拼接了refs/heads/、refs/tags/前缀,或者夹带空格、不可见特殊字符,导致CodeBuild拼接源码拉取路径失败。- 拉取权限不足:CodeBuild服务角色缺少对应源仓库的拉取权限,或者第三方源(GitHub/GitLab/Bitbucket)的关联授权凭证过期、无目标仓库/分支的读取权限,触发服务端泛化报错。
- AWS CodeBuild服务侧临时故障:对应区域的CodeBuild源码拉取模块出现服务异常,这类问题一般会同步在AWS健康看板公示。
排查与解决方法
- 校验源引用有效性
进入对应失败的CodePipeline执行详情页,查看Source阶段的输出信息,确认传递给CodeBuild的提交ID、分支/标签名称,到对应源仓库校验该提交、分支/标签真实存在,未被删除或强制推送覆盖。如果引用已失效,修正Source阶段的分支配置后重新触发流水线即可。 - 修正
CODEBUILD_CLONE_REF参数配置
进入CodeBuild项目编辑页,找到环境变量配置项,校验CODEBUILD_CLONE_REF的取值:拉取分支时直接填分支名(如main、feature/payment),拉取标签时直接填标签名,不需要额外添加ref路径前缀,清除值前后的空格、不可见特殊字符后保存重试。 - 校验权限与凭证
检查CodeBuild绑定的服务角色权限策略,确认已授予源仓库的拉取权限:使用CodeCommit作为源时,需要保证角色拥有对应仓库的codecommit:GitPull权限,且无资源级权限规则拦截对应分支/标签的拉取请求;使用第三方Git源时,重新测试CodeBuild的源连接有效性,确认授权凭证未过期、授权账号拥有目标仓库的读取权限。 - 排查服务侧故障
查看对应区域的AWS服务健康看板,如果存在CodeBuild服务故障公示,等待故障修复后重新触发构建即可。
内容的提问来源于stack exchange,提问作者steamer25
相关产品推荐
相关产品推荐

