1. Respond to the GraphQL API and report an error: fields “default” cause they return conflicting types float! and boolean!. use Different aliases on the fields to fetch both if this was interested.
{
"errors": [
{
"message": "Fields \"default\" conflict because they return conflicting types Float! and Boolean!. Use different aliases on the fields to fetch both if this was intentional.",
"extensions": {
"category": "graphql"
},
"locations": [
{
"line": 134,
"column": 3
},
{
"line": 145,
"column": 3
}
]
},
{
"message": "Fields \"value\" conflict because they return conflicting types Float! and Boolean!. Use different aliases on the fields to fetch both if this was intentional.",
"extensions": {
"category": "graphql"
},
"locations": [
{
"line": 139,
"column": 3
},
{
"line": 146,
"column": 3
}
]
}
]
}
2. Check the query request and find that there is a corresponding prompt: fields “default” cause they return conflicting types “float!” and “boolean!”. Use different aliases on the fields to fetch both if this was interested. as shown in Figure 1

query OnlineStoreTheme($themeId: ID!) {
onlineStoreTheme(themeId: $themeId) {
themeSettingsCategories {
...ThemeSettingsCategory
__typename
}
__typename
}
}
fragment ThemePreset on ThemePreset {
id
settings {
...ThemeStyleSetting
}
sections {
id
sectionId
disabled
schema {
blockSchemas {
id
limit
name
settings {
id
info
label
settingId
type
}
type
}
}
}
}
fragment ThemeStyleSetting on ThemeStyleSetting {
id
settingId
value
type
}
fragment ThemeSettingsCategory on ThemeSettingsCategory {
id
title
settings {
...ThemeSetting
__typename
}
__typename
}
fragment ThemeSetting on ThemeSetting {
... on ThemeSettingRange {
...ThemeSettingRange
__typename
}
... on ThemeSettingCheckbox {
...ThemeSettingCheckbox
__typename
}
__typename
}
fragment ThemeSettingCommon on ThemeSetting {
id
info
label
settingId
type
__typename
}
fragment ThemeSettingRange on ThemeSettingRange {
...ThemeSettingCommon
default
min
max
step
unit
value
__typename
}
fragment ThemeSettingCheckbox on ThemeSettingCheckbox {
...ThemeSettingCommon
default
value
__typename
}
3. The reason should be that in the implementation of this interface type, the field type is different, and the inline fragment is used during the query. Float! in ThemeSettingRange. Boolean! in ThemeSettingCheckBox. If you request fields with the same name (or alias) multiple times in the same selection set, the field must return the same type. Figure 2, Figure 3


type ThemeSettingRange implements ThemeSetting
{
default: Float!
value: Float!
}
type ThemeSettingCheckbox implements ThemeSetting
{
default: Boolean!
value: Boolean!
}
4. Reference:https://github.com/graphql/graphql-js/issues/1361, using aliases can solve this problem. But using aliases will increase the difficulty of the client’s resolution. as shown in Figure 4

fragment ThemeSettingRange on ThemeSettingRange {
...ThemeSettingCommon
rangeDefault: default
min
max
step
unit
rangeValue: value
__typename
}
{
"id": "96b1c8b9-5b18-4760-9e26-50ab009ac011/settings/radius__image",
"info": null,
"label": "图片圆角度数",
"settingId": "radius__image",
"type": "RANGE",
"__typename": "ThemeSettingRange",
"rangeDefault": 0,
"min": 0,
"max": 24,
"step": 1,
"unit": null,
"rangeValue": 0
}
需要长期技术维护或远程问题排查?
我是拥有 15+ 年经验的 PHP / Go 后端工程师,长期关注已有系统维护、Bug 修复、性能优化、服务器排查、WordPress 网站维护和小功能迭代。
如果你的项目遇到以下情况,可以先从一次小问题排查开始合作:
- ✅ PHP / Laravel / Yii2 老项目无人维护
- ✅ Go / Gin 后端接口需要排查或优化
- ✅ WordPress 网站访问慢、报错或插件冲突
- ✅ Nginx / MySQL / Redis / Linux 服务器异常
- ✅ CDN / Cloudflare / DNS / HTTPS 配置问题
- ✅ 需要长期远程技术支持或兼职维护
更多介绍请查看:关于我 & 合作
微信:13980074657
邮箱:shuijingwanwq@gmail.com
Telegram:@shuijingwan
GitHub:https://github.com/shuijingwan


发表回复